From bbab67aca00daf1fd3bb582329203929f4588f1a Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 00:14:46 +0300 Subject: [PATCH 001/144] template generator by @kasthack <3 --- bin/dotnet/Epicmorg.DockerGenerator.csproj | 10 ++ bin/dotnet/Program.cs | 95 +++++++++++++++++++ bin/dotnet/data/jira/templates/7/Dockerfile | 50 ++++++++++ bin/dotnet/data/jira/templates/7/Makefile | 5 + .../data/jira/templates/7/docker-compose.yml | 9 ++ .../data/jira/templates/7/entrypoint.sh | 89 +++++++++++++++++ bin/dotnet/data/jira/templates/8/Dockerfile | 50 ++++++++++ bin/dotnet/data/jira/templates/8/Makefile | 5 + .../data/jira/templates/8/docker-compose.yml | 9 ++ .../data/jira/templates/8/entrypoint.sh | 89 +++++++++++++++++ 10 files changed, 411 insertions(+) create mode 100644 bin/dotnet/Epicmorg.DockerGenerator.csproj create mode 100644 bin/dotnet/Program.cs create mode 100644 bin/dotnet/data/jira/templates/7/Dockerfile create mode 100644 bin/dotnet/data/jira/templates/7/Makefile create mode 100644 bin/dotnet/data/jira/templates/7/docker-compose.yml create mode 100644 bin/dotnet/data/jira/templates/7/entrypoint.sh create mode 100644 bin/dotnet/data/jira/templates/8/Dockerfile create mode 100644 bin/dotnet/data/jira/templates/8/Makefile create mode 100644 bin/dotnet/data/jira/templates/8/docker-compose.yml create mode 100644 bin/dotnet/data/jira/templates/8/entrypoint.sh diff --git a/bin/dotnet/Epicmorg.DockerGenerator.csproj b/bin/dotnet/Epicmorg.DockerGenerator.csproj new file mode 100644 index 000000000..42ed1bdff --- /dev/null +++ b/bin/dotnet/Epicmorg.DockerGenerator.csproj @@ -0,0 +1,10 @@ + + + + Exe + net5.0 + + + + + diff --git a/bin/dotnet/Program.cs b/bin/dotnet/Program.cs new file mode 100644 index 000000000..db1e74e74 --- /dev/null +++ b/bin/dotnet/Program.cs @@ -0,0 +1,95 @@ +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 + /// Silently ignore versions without templates + /// + public static async Task Main(DirectoryInfo workdir, FileInfo json, string product, bool force = false, bool ignoreVersionsWithoutTemplates = false) + { + 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.ToString().EndsWith(".tar.gz"))) + { + 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/data/jira/templates/7/Dockerfile b/bin/dotnet/data/jira/templates/7/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/bin/dotnet/data/jira/templates/7/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/bin/dotnet/data/jira/templates/7/Makefile b/bin/dotnet/data/jira/templates/7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/jira/templates/7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/jira/templates/7/docker-compose.yml b/bin/dotnet/data/jira/templates/7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/bin/dotnet/data/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} \ No newline at end of file diff --git a/bin/dotnet/data/jira/templates/7/entrypoint.sh b/bin/dotnet/data/jira/templates/7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/jira/templates/8/Dockerfile b/bin/dotnet/data/jira/templates/8/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/bin/dotnet/data/jira/templates/8/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/bin/dotnet/data/jira/templates/8/Makefile b/bin/dotnet/data/jira/templates/8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/jira/templates/8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/jira/templates/8/docker-compose.yml b/bin/dotnet/data/jira/templates/8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/bin/dotnet/data/jira/templates/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/bin/dotnet/data/jira/templates/8/entrypoint.sh b/bin/dotnet/data/jira/templates/8/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/bin/dotnet/data/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 From 94c1e0389c3c5a5eb11e842d885acf6b9e41775e Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 00:30:33 +0300 Subject: [PATCH 002/144] Update README.md --- linux/atlassian/jira/README.md | 156 ++++++++++++++++++++++++++++++++- 1 file changed, 155 insertions(+), 1 deletion(-) diff --git a/linux/atlassian/jira/README.md b/linux/atlassian/jira/README.md index 2fdf04b8e..a14489f66 100644 --- a/linux/atlassian/jira/README.md +++ b/linux/atlassian/jira/README.md @@ -11,4 +11,158 @@ 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 +*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` +* `epicmorg/jira:7.10.0` + +# Support + +This Docker container is unsupported and is intended for illustration purposes only. From cdafd18f9f1a1bef41c5d5d344be5bd6c4d1ed8d Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 00:31:22 +0300 Subject: [PATCH 003/144] readme moved to jira catalog --- linux/atlassian/jira/8/8.0.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.0.2/README.md | 151 ------------------------ linux/atlassian/jira/8/8.0.3/README.md | 151 ------------------------ linux/atlassian/jira/8/8.1.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.1.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.1.2/README.md | 151 ------------------------ linux/atlassian/jira/8/8.1.3/README.md | 151 ------------------------ linux/atlassian/jira/8/8.10.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.10.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.11.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.11.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.12.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.12.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.2.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.2.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.2.2/README.md | 151 ------------------------ linux/atlassian/jira/8/8.2.3/README.md | 151 ------------------------ linux/atlassian/jira/8/8.2.4/README.md | 151 ------------------------ linux/atlassian/jira/8/8.2.5/README.md | 151 ------------------------ linux/atlassian/jira/8/8.2.6/README.md | 151 ------------------------ linux/atlassian/jira/8/8.3.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.3.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.3.2/README.md | 151 ------------------------ linux/atlassian/jira/8/8.3.3/README.md | 151 ------------------------ linux/atlassian/jira/8/8.3.4/README.md | 151 ------------------------ linux/atlassian/jira/8/8.3.5/README.md | 151 ------------------------ linux/atlassian/jira/8/8.4.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.4.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.4.2/README.md | 151 ------------------------ linux/atlassian/jira/8/8.4.3/README.md | 151 ------------------------ linux/atlassian/jira/8/8.5.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.5.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.5.2/README.md | 151 ------------------------ linux/atlassian/jira/8/8.5.3/README.md | 151 ------------------------ linux/atlassian/jira/8/8.6.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.6.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.7.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.7.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.8.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.8.1/README.md | 151 ------------------------ linux/atlassian/jira/8/8.9.0/README.md | 151 ------------------------ linux/atlassian/jira/8/8.9.1/README.md | 151 ------------------------ linux/atlassian/jira/8/README.md | 8 -- linux/atlassian/jira/latest/README.md | 151 ------------------------ 44 files changed, 6501 deletions(-) delete mode 100644 linux/atlassian/jira/8/8.0.0/README.md delete mode 100644 linux/atlassian/jira/8/8.0.2/README.md delete mode 100644 linux/atlassian/jira/8/8.0.3/README.md delete mode 100644 linux/atlassian/jira/8/8.1.0/README.md delete mode 100644 linux/atlassian/jira/8/8.1.1/README.md delete mode 100644 linux/atlassian/jira/8/8.1.2/README.md delete mode 100644 linux/atlassian/jira/8/8.1.3/README.md delete mode 100644 linux/atlassian/jira/8/8.10.0/README.md delete mode 100644 linux/atlassian/jira/8/8.10.1/README.md delete mode 100644 linux/atlassian/jira/8/8.11.0/README.md delete mode 100644 linux/atlassian/jira/8/8.11.1/README.md delete mode 100644 linux/atlassian/jira/8/8.12.0/README.md delete mode 100644 linux/atlassian/jira/8/8.12.1/README.md delete mode 100644 linux/atlassian/jira/8/8.2.0/README.md delete mode 100644 linux/atlassian/jira/8/8.2.1/README.md delete mode 100644 linux/atlassian/jira/8/8.2.2/README.md delete mode 100644 linux/atlassian/jira/8/8.2.3/README.md delete mode 100644 linux/atlassian/jira/8/8.2.4/README.md delete mode 100644 linux/atlassian/jira/8/8.2.5/README.md delete mode 100644 linux/atlassian/jira/8/8.2.6/README.md delete mode 100644 linux/atlassian/jira/8/8.3.0/README.md delete mode 100644 linux/atlassian/jira/8/8.3.1/README.md delete mode 100644 linux/atlassian/jira/8/8.3.2/README.md delete mode 100644 linux/atlassian/jira/8/8.3.3/README.md delete mode 100644 linux/atlassian/jira/8/8.3.4/README.md delete mode 100644 linux/atlassian/jira/8/8.3.5/README.md delete mode 100644 linux/atlassian/jira/8/8.4.0/README.md delete mode 100644 linux/atlassian/jira/8/8.4.1/README.md delete mode 100644 linux/atlassian/jira/8/8.4.2/README.md delete mode 100644 linux/atlassian/jira/8/8.4.3/README.md delete mode 100644 linux/atlassian/jira/8/8.5.0/README.md delete mode 100644 linux/atlassian/jira/8/8.5.1/README.md delete mode 100644 linux/atlassian/jira/8/8.5.2/README.md delete mode 100644 linux/atlassian/jira/8/8.5.3/README.md delete mode 100644 linux/atlassian/jira/8/8.6.0/README.md delete mode 100644 linux/atlassian/jira/8/8.6.1/README.md delete mode 100644 linux/atlassian/jira/8/8.7.0/README.md delete mode 100644 linux/atlassian/jira/8/8.7.1/README.md delete mode 100644 linux/atlassian/jira/8/8.8.0/README.md delete mode 100644 linux/atlassian/jira/8/8.8.1/README.md delete mode 100644 linux/atlassian/jira/8/8.9.0/README.md delete mode 100644 linux/atlassian/jira/8/8.9.1/README.md delete mode 100644 linux/atlassian/jira/8/README.md delete mode 100644 linux/atlassian/jira/latest/README.md 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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. From a55d6dee071593079c112459f94281aad0c4a71e Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 00:32:57 +0300 Subject: [PATCH 004/144] readme moved to jira catalog --- linux/atlassian/jira/5/README.md | 8 -- linux/atlassian/jira/6/6.3.15/README.md | 151 ----------------------- linux/atlassian/jira/6/6.4.14/README.md | 151 ----------------------- linux/atlassian/jira/6/README.md | 8 -- linux/atlassian/jira/7/7.0.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.0.10/README.md | 151 ----------------------- linux/atlassian/jira/7/7.0.11/README.md | 151 ----------------------- linux/atlassian/jira/7/7.0.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.0.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.0.5/README.md | 151 ----------------------- linux/atlassian/jira/7/7.1.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.1.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.1.10/README.md | 151 ----------------------- linux/atlassian/jira/7/7.1.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.1.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.1.6/README.md | 151 ----------------------- linux/atlassian/jira/7/7.1.7/README.md | 151 ----------------------- linux/atlassian/jira/7/7.1.8/README.md | 151 ----------------------- linux/atlassian/jira/7/7.1.9/README.md | 151 ----------------------- linux/atlassian/jira/7/7.10.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.10.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.10.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.11.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.11.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.11.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.12.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.12.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.12.3/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.11/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.12/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.13/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.3/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.5/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.6/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.8/README.md | 151 ----------------------- linux/atlassian/jira/7/7.13.9/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.10/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.11/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.12/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.13/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.14/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.15/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.3/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.6/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.7/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.8/README.md | 151 ----------------------- linux/atlassian/jira/7/7.2.9/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.3/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.5/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.6/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.7/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.8/README.md | 151 ----------------------- linux/atlassian/jira/7/7.3.9/README.md | 151 ----------------------- linux/atlassian/jira/7/7.4.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.4.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.4.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.4.3/README.md | 151 ----------------------- linux/atlassian/jira/7/7.4.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.4.5/README.md | 151 ----------------------- linux/atlassian/jira/7/7.4.6/README.md | 151 ----------------------- linux/atlassian/jira/7/7.5.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.5.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.5.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.5.3/README.md | 151 ----------------------- linux/atlassian/jira/7/7.5.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.10/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.11/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.12/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.13/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.14/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.15/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.16/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.17/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.3/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.6/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.7/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.8/README.md | 151 ----------------------- linux/atlassian/jira/7/7.6.9/README.md | 151 ----------------------- linux/atlassian/jira/7/7.7.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.7.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.7.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.7.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.8.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.8.1/README.md | 151 ----------------------- linux/atlassian/jira/7/7.8.2/README.md | 151 ----------------------- linux/atlassian/jira/7/7.8.4/README.md | 151 ----------------------- linux/atlassian/jira/7/7.9.0/README.md | 151 ----------------------- linux/atlassian/jira/7/7.9.2/README.md | 151 ----------------------- linux/atlassian/jira/7/README.md | 8 -- 105 files changed, 15426 deletions(-) delete mode 100644 linux/atlassian/jira/5/README.md delete mode 100644 linux/atlassian/jira/6/6.3.15/README.md delete mode 100644 linux/atlassian/jira/6/6.4.14/README.md delete mode 100644 linux/atlassian/jira/6/README.md delete mode 100644 linux/atlassian/jira/7/7.0.0/README.md delete mode 100644 linux/atlassian/jira/7/7.0.10/README.md delete mode 100644 linux/atlassian/jira/7/7.0.11/README.md delete mode 100644 linux/atlassian/jira/7/7.0.2/README.md delete mode 100644 linux/atlassian/jira/7/7.0.4/README.md delete mode 100644 linux/atlassian/jira/7/7.0.5/README.md delete mode 100644 linux/atlassian/jira/7/7.1.0/README.md delete mode 100644 linux/atlassian/jira/7/7.1.1/README.md delete mode 100644 linux/atlassian/jira/7/7.1.10/README.md delete mode 100644 linux/atlassian/jira/7/7.1.2/README.md delete mode 100644 linux/atlassian/jira/7/7.1.4/README.md delete mode 100644 linux/atlassian/jira/7/7.1.6/README.md delete mode 100644 linux/atlassian/jira/7/7.1.7/README.md delete mode 100644 linux/atlassian/jira/7/7.1.8/README.md delete mode 100644 linux/atlassian/jira/7/7.1.9/README.md delete mode 100644 linux/atlassian/jira/7/7.10.0/README.md delete mode 100644 linux/atlassian/jira/7/7.10.1/README.md delete mode 100644 linux/atlassian/jira/7/7.10.2/README.md delete mode 100644 linux/atlassian/jira/7/7.11.0/README.md delete mode 100644 linux/atlassian/jira/7/7.11.1/README.md delete mode 100644 linux/atlassian/jira/7/7.11.2/README.md delete mode 100644 linux/atlassian/jira/7/7.12.0/README.md delete mode 100644 linux/atlassian/jira/7/7.12.1/README.md delete mode 100644 linux/atlassian/jira/7/7.12.3/README.md delete mode 100644 linux/atlassian/jira/7/7.13.0/README.md delete mode 100644 linux/atlassian/jira/7/7.13.1/README.md delete mode 100644 linux/atlassian/jira/7/7.13.11/README.md delete mode 100644 linux/atlassian/jira/7/7.13.12/README.md delete mode 100644 linux/atlassian/jira/7/7.13.13/README.md delete mode 100644 linux/atlassian/jira/7/7.13.2/README.md delete mode 100644 linux/atlassian/jira/7/7.13.3/README.md delete mode 100644 linux/atlassian/jira/7/7.13.4/README.md delete mode 100644 linux/atlassian/jira/7/7.13.5/README.md delete mode 100644 linux/atlassian/jira/7/7.13.6/README.md delete mode 100644 linux/atlassian/jira/7/7.13.8/README.md delete mode 100644 linux/atlassian/jira/7/7.13.9/README.md delete mode 100644 linux/atlassian/jira/7/7.2.0/README.md delete mode 100644 linux/atlassian/jira/7/7.2.1/README.md delete mode 100644 linux/atlassian/jira/7/7.2.10/README.md delete mode 100644 linux/atlassian/jira/7/7.2.11/README.md delete mode 100644 linux/atlassian/jira/7/7.2.12/README.md delete mode 100644 linux/atlassian/jira/7/7.2.13/README.md delete mode 100644 linux/atlassian/jira/7/7.2.14/README.md delete mode 100644 linux/atlassian/jira/7/7.2.15/README.md delete mode 100644 linux/atlassian/jira/7/7.2.2/README.md delete mode 100644 linux/atlassian/jira/7/7.2.3/README.md delete mode 100644 linux/atlassian/jira/7/7.2.4/README.md delete mode 100644 linux/atlassian/jira/7/7.2.6/README.md delete mode 100644 linux/atlassian/jira/7/7.2.7/README.md delete mode 100644 linux/atlassian/jira/7/7.2.8/README.md delete mode 100644 linux/atlassian/jira/7/7.2.9/README.md delete mode 100644 linux/atlassian/jira/7/7.3.0/README.md delete mode 100644 linux/atlassian/jira/7/7.3.1/README.md delete mode 100644 linux/atlassian/jira/7/7.3.2/README.md delete mode 100644 linux/atlassian/jira/7/7.3.3/README.md delete mode 100644 linux/atlassian/jira/7/7.3.4/README.md delete mode 100644 linux/atlassian/jira/7/7.3.5/README.md delete mode 100644 linux/atlassian/jira/7/7.3.6/README.md delete mode 100644 linux/atlassian/jira/7/7.3.7/README.md delete mode 100644 linux/atlassian/jira/7/7.3.8/README.md delete mode 100644 linux/atlassian/jira/7/7.3.9/README.md delete mode 100644 linux/atlassian/jira/7/7.4.0/README.md delete mode 100644 linux/atlassian/jira/7/7.4.1/README.md delete mode 100644 linux/atlassian/jira/7/7.4.2/README.md delete mode 100644 linux/atlassian/jira/7/7.4.3/README.md delete mode 100644 linux/atlassian/jira/7/7.4.4/README.md delete mode 100644 linux/atlassian/jira/7/7.4.5/README.md delete mode 100644 linux/atlassian/jira/7/7.4.6/README.md delete mode 100644 linux/atlassian/jira/7/7.5.0/README.md delete mode 100644 linux/atlassian/jira/7/7.5.1/README.md delete mode 100644 linux/atlassian/jira/7/7.5.2/README.md delete mode 100644 linux/atlassian/jira/7/7.5.3/README.md delete mode 100644 linux/atlassian/jira/7/7.5.4/README.md delete mode 100644 linux/atlassian/jira/7/7.6.0/README.md delete mode 100644 linux/atlassian/jira/7/7.6.1/README.md delete mode 100644 linux/atlassian/jira/7/7.6.10/README.md delete mode 100644 linux/atlassian/jira/7/7.6.11/README.md delete mode 100644 linux/atlassian/jira/7/7.6.12/README.md delete mode 100644 linux/atlassian/jira/7/7.6.13/README.md delete mode 100644 linux/atlassian/jira/7/7.6.14/README.md delete mode 100644 linux/atlassian/jira/7/7.6.15/README.md delete mode 100644 linux/atlassian/jira/7/7.6.16/README.md delete mode 100644 linux/atlassian/jira/7/7.6.17/README.md delete mode 100644 linux/atlassian/jira/7/7.6.2/README.md delete mode 100644 linux/atlassian/jira/7/7.6.3/README.md delete mode 100644 linux/atlassian/jira/7/7.6.4/README.md delete mode 100644 linux/atlassian/jira/7/7.6.6/README.md delete mode 100644 linux/atlassian/jira/7/7.6.7/README.md delete mode 100644 linux/atlassian/jira/7/7.6.8/README.md delete mode 100644 linux/atlassian/jira/7/7.6.9/README.md delete mode 100644 linux/atlassian/jira/7/7.7.0/README.md delete mode 100644 linux/atlassian/jira/7/7.7.1/README.md delete mode 100644 linux/atlassian/jira/7/7.7.2/README.md delete mode 100644 linux/atlassian/jira/7/7.7.4/README.md delete mode 100644 linux/atlassian/jira/7/7.8.0/README.md delete mode 100644 linux/atlassian/jira/7/7.8.1/README.md delete mode 100644 linux/atlassian/jira/7/7.8.2/README.md delete mode 100644 linux/atlassian/jira/7/7.8.4/README.md delete mode 100644 linux/atlassian/jira/7/7.9.0/README.md delete mode 100644 linux/atlassian/jira/7/7.9.2/README.md delete mode 100644 linux/atlassian/jira/7/README.md 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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 From 60ecc190dae2f557d08651c407301e43fca2c372 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 00:34:47 +0300 Subject: [PATCH 005/144] Update README.md --- linux/atlassian/jira/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/atlassian/jira/README.md b/linux/atlassian/jira/README.md index a14489f66..10b89190a 100644 --- a/linux/atlassian/jira/README.md +++ b/linux/atlassian/jira/README.md @@ -161,7 +161,7 @@ The `latest` tag matches the most recent release of Atlassian JIRA Software. Thu ## Versions available * `epicmorg/jira:latest` -* `epicmorg/jira:7.10.0` +* another like sub-directories names (like `7.10.0`, `8.16.1`, etc) # Support From 45935c12a8cb41ef5749dd3d90f8c0a3dce0bcef Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 00:40:06 +0300 Subject: [PATCH 006/144] jira6 template --- bin/dotnet/data/jira/templates/6/Dockerfile | 50 +++++++++++ bin/dotnet/data/jira/templates/6/Makefile | 5 ++ .../data/jira/templates/6/docker-compose.yml | 9 ++ .../data/jira/templates/6/entrypoint.sh | 89 +++++++++++++++++++ 4 files changed, 153 insertions(+) create mode 100644 bin/dotnet/data/jira/templates/6/Dockerfile create mode 100644 bin/dotnet/data/jira/templates/6/Makefile create mode 100644 bin/dotnet/data/jira/templates/6/docker-compose.yml create mode 100644 bin/dotnet/data/jira/templates/6/entrypoint.sh diff --git a/bin/dotnet/data/jira/templates/6/Dockerfile b/bin/dotnet/data/jira/templates/6/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/bin/dotnet/data/jira/templates/6/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/bin/dotnet/data/jira/templates/6/Makefile b/bin/dotnet/data/jira/templates/6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/jira/templates/6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/jira/templates/6/docker-compose.yml b/bin/dotnet/data/jira/templates/6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/bin/dotnet/data/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} \ No newline at end of file diff --git a/bin/dotnet/data/jira/templates/6/entrypoint.sh b/bin/dotnet/data/jira/templates/6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/bin/dotnet/data/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 From f2bda339a1389484a7ffe85ed38b1c1cd4e75542 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 00:45:32 +0300 Subject: [PATCH 007/144] jira5 template --- bin/dotnet/data/jira/templates/5/Dockerfile | 50 +++++++++++ bin/dotnet/data/jira/templates/5/Makefile | 5 ++ .../data/jira/templates/5/docker-compose.yml | 9 ++ .../data/jira/templates/5/entrypoint.sh | 89 +++++++++++++++++++ 4 files changed, 153 insertions(+) create mode 100644 bin/dotnet/data/jira/templates/5/Dockerfile create mode 100644 bin/dotnet/data/jira/templates/5/Makefile create mode 100644 bin/dotnet/data/jira/templates/5/docker-compose.yml create mode 100644 bin/dotnet/data/jira/templates/5/entrypoint.sh diff --git a/bin/dotnet/data/jira/templates/5/Dockerfile b/bin/dotnet/data/jira/templates/5/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/bin/dotnet/data/jira/templates/5/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/cache/apt/archives/*.deb + +CMD ["/entrypoint.sh", "-fg"] +ENTRYPOINT ["/usr/bin/tini", "--"] +COPY entrypoint.sh /entrypoint.sh +COPY . /tmp diff --git a/bin/dotnet/data/jira/templates/5/Makefile b/bin/dotnet/data/jira/templates/5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/jira/templates/5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/jira/templates/5/docker-compose.yml b/bin/dotnet/data/jira/templates/5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/bin/dotnet/data/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} \ No newline at end of file diff --git a/bin/dotnet/data/jira/templates/5/entrypoint.sh b/bin/dotnet/data/jira/templates/5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/bin/dotnet/data/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 From cf5077b1c5ec2e4ae0be5d8d4c59bf0b02cf4635 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 00:52:30 +0300 Subject: [PATCH 008/144] most big images update --- CHANGELOG.md | 5 ++ linux/atlassian/jira/5/5.0.0 | 1 - linux/atlassian/jira/5/5.0.1/.env | 3 + linux/atlassian/jira/5/5.0.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.0.1/Makefile | 5 ++ .../atlassian/jira/5/5.0.1/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.0.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.0.2/.env | 3 + linux/atlassian/jira/5/5.0.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.0.2/Makefile | 5 ++ .../atlassian/jira/5/5.0.2/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.0.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.0.3/.env | 3 + linux/atlassian/jira/5/5.0.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.0.3/Makefile | 5 ++ .../atlassian/jira/5/5.0.3/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.0.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.0.4/.env | 3 + linux/atlassian/jira/5/5.0.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.0.4/Makefile | 5 ++ .../atlassian/jira/5/5.0.4/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.0.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.0.5/.env | 3 + linux/atlassian/jira/5/5.0.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.0.5/Makefile | 5 ++ .../atlassian/jira/5/5.0.5/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.0.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.0.6/.env | 3 + linux/atlassian/jira/5/5.0.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.0.6/Makefile | 5 ++ .../atlassian/jira/5/5.0.6/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.0.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.0.7/.env | 3 + linux/atlassian/jira/5/5.0.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.0.7/Makefile | 5 ++ .../atlassian/jira/5/5.0.7/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.0.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.0/.env | 3 + linux/atlassian/jira/5/5.0/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.0/Makefile | 5 ++ linux/atlassian/jira/5/5.0/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.0/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.1.1/.env | 3 + linux/atlassian/jira/5/5.1.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.1.1/Makefile | 5 ++ .../atlassian/jira/5/5.1.1/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.1.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.1.2/.env | 3 + linux/atlassian/jira/5/5.1.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.1.2/Makefile | 5 ++ .../atlassian/jira/5/5.1.2/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.1.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.1.3/.env | 3 + linux/atlassian/jira/5/5.1.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.1.3/Makefile | 5 ++ .../atlassian/jira/5/5.1.3/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.1.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.1.4/.env | 3 + linux/atlassian/jira/5/5.1.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.1.4/Makefile | 5 ++ .../atlassian/jira/5/5.1.4/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.1.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.1.5/.env | 3 + linux/atlassian/jira/5/5.1.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.1.5/Makefile | 5 ++ .../atlassian/jira/5/5.1.5/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.1.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.1.6/.env | 3 + linux/atlassian/jira/5/5.1.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.1.6/Makefile | 5 ++ .../atlassian/jira/5/5.1.6/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.1.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.1.7/.env | 3 + linux/atlassian/jira/5/5.1.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.1.7/Makefile | 5 ++ .../atlassian/jira/5/5.1.7/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.1.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.1.8/.env | 3 + linux/atlassian/jira/5/5.1.8/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.1.8/Makefile | 5 ++ .../atlassian/jira/5/5.1.8/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.1.8/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.1/.env | 3 + linux/atlassian/jira/5/5.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.1/Makefile | 5 ++ linux/atlassian/jira/5/5.1/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.1/.env | 3 + linux/atlassian/jira/5/5.2.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.1/Makefile | 5 ++ .../atlassian/jira/5/5.2.1/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.10/.env | 3 + linux/atlassian/jira/5/5.2.10/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.10/Makefile | 5 ++ .../jira/5/5.2.10/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.10/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.11/.env | 3 + linux/atlassian/jira/5/5.2.11/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.11/Makefile | 5 ++ .../jira/5/5.2.11/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.11/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.2/.env | 3 + linux/atlassian/jira/5/5.2.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.2/Makefile | 5 ++ .../atlassian/jira/5/5.2.2/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.3/.env | 3 + linux/atlassian/jira/5/5.2.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.3/Makefile | 5 ++ .../atlassian/jira/5/5.2.3/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.4.1/.env | 3 + linux/atlassian/jira/5/5.2.4.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.4.1/Makefile | 5 ++ .../jira/5/5.2.4.1/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.4.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.4/.env | 3 + linux/atlassian/jira/5/5.2.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.4/Makefile | 5 ++ .../atlassian/jira/5/5.2.4/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.5/.env | 3 + linux/atlassian/jira/5/5.2.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.5/Makefile | 5 ++ .../atlassian/jira/5/5.2.5/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.6/.env | 3 + linux/atlassian/jira/5/5.2.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.6/Makefile | 5 ++ .../atlassian/jira/5/5.2.6/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.7/.env | 3 + linux/atlassian/jira/5/5.2.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.7/Makefile | 5 ++ .../atlassian/jira/5/5.2.7/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.8/.env | 3 + linux/atlassian/jira/5/5.2.8/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.8/Makefile | 5 ++ .../atlassian/jira/5/5.2.8/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.8/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2.9/.env | 3 + linux/atlassian/jira/5/5.2.9/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2.9/Makefile | 5 ++ .../atlassian/jira/5/5.2.9/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2.9/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/5/5.2/.env | 3 + linux/atlassian/jira/5/5.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/5/5.2/Makefile | 5 ++ linux/atlassian/jira/5/5.2/docker-compose.yml | 9 ++ linux/atlassian/jira/5/5.2/entrypoint.sh | 89 +++++++++++++++++++ 152 files changed, 4685 insertions(+), 1 deletion(-) delete mode 100644 linux/atlassian/jira/5/5.0.0 create mode 100644 linux/atlassian/jira/5/5.0.1/.env create mode 100644 linux/atlassian/jira/5/5.0.1/Dockerfile create mode 100644 linux/atlassian/jira/5/5.0.1/Makefile create mode 100644 linux/atlassian/jira/5/5.0.1/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.0.1/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.0.2/.env create mode 100644 linux/atlassian/jira/5/5.0.2/Dockerfile create mode 100644 linux/atlassian/jira/5/5.0.2/Makefile create mode 100644 linux/atlassian/jira/5/5.0.2/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.0.2/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.0.3/.env create mode 100644 linux/atlassian/jira/5/5.0.3/Dockerfile create mode 100644 linux/atlassian/jira/5/5.0.3/Makefile create mode 100644 linux/atlassian/jira/5/5.0.3/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.0.3/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.0.4/.env create mode 100644 linux/atlassian/jira/5/5.0.4/Dockerfile create mode 100644 linux/atlassian/jira/5/5.0.4/Makefile create mode 100644 linux/atlassian/jira/5/5.0.4/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.0.4/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.0.5/.env create mode 100644 linux/atlassian/jira/5/5.0.5/Dockerfile create mode 100644 linux/atlassian/jira/5/5.0.5/Makefile create mode 100644 linux/atlassian/jira/5/5.0.5/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.0.5/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.0.6/.env create mode 100644 linux/atlassian/jira/5/5.0.6/Dockerfile create mode 100644 linux/atlassian/jira/5/5.0.6/Makefile create mode 100644 linux/atlassian/jira/5/5.0.6/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.0.6/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.0.7/.env create mode 100644 linux/atlassian/jira/5/5.0.7/Dockerfile create mode 100644 linux/atlassian/jira/5/5.0.7/Makefile create mode 100644 linux/atlassian/jira/5/5.0.7/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.0.7/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.0/.env create mode 100644 linux/atlassian/jira/5/5.0/Dockerfile create mode 100644 linux/atlassian/jira/5/5.0/Makefile create mode 100644 linux/atlassian/jira/5/5.0/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.0/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.1.1/.env create mode 100644 linux/atlassian/jira/5/5.1.1/Dockerfile create mode 100644 linux/atlassian/jira/5/5.1.1/Makefile create mode 100644 linux/atlassian/jira/5/5.1.1/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.1.1/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.1.2/.env create mode 100644 linux/atlassian/jira/5/5.1.2/Dockerfile create mode 100644 linux/atlassian/jira/5/5.1.2/Makefile create mode 100644 linux/atlassian/jira/5/5.1.2/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.1.2/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.1.3/.env create mode 100644 linux/atlassian/jira/5/5.1.3/Dockerfile create mode 100644 linux/atlassian/jira/5/5.1.3/Makefile create mode 100644 linux/atlassian/jira/5/5.1.3/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.1.3/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.1.4/.env create mode 100644 linux/atlassian/jira/5/5.1.4/Dockerfile create mode 100644 linux/atlassian/jira/5/5.1.4/Makefile create mode 100644 linux/atlassian/jira/5/5.1.4/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.1.4/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.1.5/.env create mode 100644 linux/atlassian/jira/5/5.1.5/Dockerfile create mode 100644 linux/atlassian/jira/5/5.1.5/Makefile create mode 100644 linux/atlassian/jira/5/5.1.5/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.1.5/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.1.6/.env create mode 100644 linux/atlassian/jira/5/5.1.6/Dockerfile create mode 100644 linux/atlassian/jira/5/5.1.6/Makefile create mode 100644 linux/atlassian/jira/5/5.1.6/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.1.6/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.1.7/.env create mode 100644 linux/atlassian/jira/5/5.1.7/Dockerfile create mode 100644 linux/atlassian/jira/5/5.1.7/Makefile create mode 100644 linux/atlassian/jira/5/5.1.7/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.1.7/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.1.8/.env create mode 100644 linux/atlassian/jira/5/5.1.8/Dockerfile create mode 100644 linux/atlassian/jira/5/5.1.8/Makefile create mode 100644 linux/atlassian/jira/5/5.1.8/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.1.8/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.1/.env create mode 100644 linux/atlassian/jira/5/5.1/Dockerfile create mode 100644 linux/atlassian/jira/5/5.1/Makefile create mode 100644 linux/atlassian/jira/5/5.1/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.1/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.1/.env create mode 100644 linux/atlassian/jira/5/5.2.1/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.1/Makefile create mode 100644 linux/atlassian/jira/5/5.2.1/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.1/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.10/.env create mode 100644 linux/atlassian/jira/5/5.2.10/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.10/Makefile create mode 100644 linux/atlassian/jira/5/5.2.10/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.10/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.11/.env create mode 100644 linux/atlassian/jira/5/5.2.11/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.11/Makefile create mode 100644 linux/atlassian/jira/5/5.2.11/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.11/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.2/.env create mode 100644 linux/atlassian/jira/5/5.2.2/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.2/Makefile create mode 100644 linux/atlassian/jira/5/5.2.2/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.2/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.3/.env create mode 100644 linux/atlassian/jira/5/5.2.3/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.3/Makefile create mode 100644 linux/atlassian/jira/5/5.2.3/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.3/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.4.1/.env create mode 100644 linux/atlassian/jira/5/5.2.4.1/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.4.1/Makefile create mode 100644 linux/atlassian/jira/5/5.2.4.1/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.4.1/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.4/.env create mode 100644 linux/atlassian/jira/5/5.2.4/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.4/Makefile create mode 100644 linux/atlassian/jira/5/5.2.4/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.4/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.5/.env create mode 100644 linux/atlassian/jira/5/5.2.5/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.5/Makefile create mode 100644 linux/atlassian/jira/5/5.2.5/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.5/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.6/.env create mode 100644 linux/atlassian/jira/5/5.2.6/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.6/Makefile create mode 100644 linux/atlassian/jira/5/5.2.6/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.6/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.7/.env create mode 100644 linux/atlassian/jira/5/5.2.7/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.7/Makefile create mode 100644 linux/atlassian/jira/5/5.2.7/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.7/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.8/.env create mode 100644 linux/atlassian/jira/5/5.2.8/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.8/Makefile create mode 100644 linux/atlassian/jira/5/5.2.8/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.8/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2.9/.env create mode 100644 linux/atlassian/jira/5/5.2.9/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2.9/Makefile create mode 100644 linux/atlassian/jira/5/5.2.9/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2.9/entrypoint.sh create mode 100644 linux/atlassian/jira/5/5.2/.env create mode 100644 linux/atlassian/jira/5/5.2/Dockerfile create mode 100644 linux/atlassian/jira/5/5.2/Makefile create mode 100644 linux/atlassian/jira/5/5.2/docker-compose.yml create mode 100644 linux/atlassian/jira/5/5.2/entrypoint.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index fdc1f75b3..e9f8328fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## Changelog ### 2021 +* `may` + * @kasthack was wrote docker-template generator for atlassian products + * was regenerated and updated *all* `jira` images with `5`, `6`, `7` and `8` 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/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/5.0.1/.env b/linux/atlassian/jira/5/5.0.1/.env new file mode 100644 index 000000000..32348a284 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.0.1/Dockerfile b/linux/atlassian/jira/5/5.0.1/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.0.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.0.1/Makefile b/linux/atlassian/jira/5/5.0.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.0.1/docker-compose.yml b/linux/atlassian/jira/5/5.0.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.0.1/entrypoint.sh b/linux/atlassian/jira/5/5.0.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.0.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/atlassian/jira/5/5.0.2/.env b/linux/atlassian/jira/5/5.0.2/.env new file mode 100644 index 000000000..f71873d96 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.0.2/Dockerfile b/linux/atlassian/jira/5/5.0.2/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.0.2/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.0.2/Makefile b/linux/atlassian/jira/5/5.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.0.2/docker-compose.yml b/linux/atlassian/jira/5/5.0.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.0.2/entrypoint.sh b/linux/atlassian/jira/5/5.0.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.0.3/.env b/linux/atlassian/jira/5/5.0.3/.env new file mode 100644 index 000000000..b8951da6e --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.0.3/Dockerfile b/linux/atlassian/jira/5/5.0.3/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.0.3/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.0.3/Makefile b/linux/atlassian/jira/5/5.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.0.3/docker-compose.yml b/linux/atlassian/jira/5/5.0.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.0.3/entrypoint.sh b/linux/atlassian/jira/5/5.0.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.0.4/.env b/linux/atlassian/jira/5/5.0.4/.env new file mode 100644 index 000000000..7565ad040 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.0.4/Dockerfile b/linux/atlassian/jira/5/5.0.4/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.0.4/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.0.4/Makefile b/linux/atlassian/jira/5/5.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.0.4/docker-compose.yml b/linux/atlassian/jira/5/5.0.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.0.4/entrypoint.sh b/linux/atlassian/jira/5/5.0.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.0.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/atlassian/jira/5/5.0.5/.env b/linux/atlassian/jira/5/5.0.5/.env new file mode 100644 index 000000000..45de0f223 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.0.5/Dockerfile b/linux/atlassian/jira/5/5.0.5/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.0.5/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.0.5/Makefile b/linux/atlassian/jira/5/5.0.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.0.5/docker-compose.yml b/linux/atlassian/jira/5/5.0.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.0.5/entrypoint.sh b/linux/atlassian/jira/5/5.0.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.0.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/atlassian/jira/5/5.0.6/.env b/linux/atlassian/jira/5/5.0.6/.env new file mode 100644 index 000000000..b9c74a5ff --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.0.6/Dockerfile b/linux/atlassian/jira/5/5.0.6/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.0.6/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.0.6/Makefile b/linux/atlassian/jira/5/5.0.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.0.6/docker-compose.yml b/linux/atlassian/jira/5/5.0.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.0.6/entrypoint.sh b/linux/atlassian/jira/5/5.0.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.0.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/atlassian/jira/5/5.0.7/.env b/linux/atlassian/jira/5/5.0.7/.env new file mode 100644 index 000000000..2555f4209 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.0.7/Dockerfile b/linux/atlassian/jira/5/5.0.7/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.0.7/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.0.7/Makefile b/linux/atlassian/jira/5/5.0.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.0.7/docker-compose.yml b/linux/atlassian/jira/5/5.0.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.0.7/entrypoint.sh b/linux/atlassian/jira/5/5.0.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.0.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/atlassian/jira/5/5.0/.env b/linux/atlassian/jira/5/5.0/.env new file mode 100644 index 000000000..f3efc19f2 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.0/Dockerfile b/linux/atlassian/jira/5/5.0/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.0/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.0/Makefile b/linux/atlassian/jira/5/5.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/5/5.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/5/5.0/docker-compose.yml b/linux/atlassian/jira/5/5.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.0/entrypoint.sh b/linux/atlassian/jira/5/5.0/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/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/atlassian/jira/5/5.1.1/.env b/linux/atlassian/jira/5/5.1.1/.env new file mode 100644 index 000000000..452d1f88f --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.1.1/Dockerfile b/linux/atlassian/jira/5/5.1.1/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.1.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.1.1/Makefile b/linux/atlassian/jira/5/5.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.1.1/docker-compose.yml b/linux/atlassian/jira/5/5.1.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.1.1/entrypoint.sh b/linux/atlassian/jira/5/5.1.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.1.2/.env b/linux/atlassian/jira/5/5.1.2/.env new file mode 100644 index 000000000..3a563c2f8 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.1.2/Dockerfile b/linux/atlassian/jira/5/5.1.2/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.1.2/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.1.2/Makefile b/linux/atlassian/jira/5/5.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.1.2/docker-compose.yml b/linux/atlassian/jira/5/5.1.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.1.2/entrypoint.sh b/linux/atlassian/jira/5/5.1.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.1.3/.env b/linux/atlassian/jira/5/5.1.3/.env new file mode 100644 index 000000000..180868b1d --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.1.3/Dockerfile b/linux/atlassian/jira/5/5.1.3/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.1.3/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.1.3/Makefile b/linux/atlassian/jira/5/5.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.1.3/docker-compose.yml b/linux/atlassian/jira/5/5.1.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.1.3/entrypoint.sh b/linux/atlassian/jira/5/5.1.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.1.4/.env b/linux/atlassian/jira/5/5.1.4/.env new file mode 100644 index 000000000..6bc0c2b4a --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.1.4/Dockerfile b/linux/atlassian/jira/5/5.1.4/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.1.4/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.1.4/Makefile b/linux/atlassian/jira/5/5.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.1.4/docker-compose.yml b/linux/atlassian/jira/5/5.1.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.1.4/entrypoint.sh b/linux/atlassian/jira/5/5.1.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.1.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/atlassian/jira/5/5.1.5/.env b/linux/atlassian/jira/5/5.1.5/.env new file mode 100644 index 000000000..d14b9657d --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.1.5/Dockerfile b/linux/atlassian/jira/5/5.1.5/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.1.5/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.1.5/Makefile b/linux/atlassian/jira/5/5.1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.1.5/docker-compose.yml b/linux/atlassian/jira/5/5.1.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.1.5/entrypoint.sh b/linux/atlassian/jira/5/5.1.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.1.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/atlassian/jira/5/5.1.6/.env b/linux/atlassian/jira/5/5.1.6/.env new file mode 100644 index 000000000..578988068 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.1.6/Dockerfile b/linux/atlassian/jira/5/5.1.6/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.1.6/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.1.6/Makefile b/linux/atlassian/jira/5/5.1.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.1.6/docker-compose.yml b/linux/atlassian/jira/5/5.1.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.1.6/entrypoint.sh b/linux/atlassian/jira/5/5.1.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.1.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/atlassian/jira/5/5.1.7/.env b/linux/atlassian/jira/5/5.1.7/.env new file mode 100644 index 000000000..f329036e0 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.1.7/Dockerfile b/linux/atlassian/jira/5/5.1.7/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.1.7/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.1.7/Makefile b/linux/atlassian/jira/5/5.1.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.1.7/docker-compose.yml b/linux/atlassian/jira/5/5.1.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.1.7/entrypoint.sh b/linux/atlassian/jira/5/5.1.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.1.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/atlassian/jira/5/5.1.8/.env b/linux/atlassian/jira/5/5.1.8/.env new file mode 100644 index 000000000..19189e98c --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.1.8/Dockerfile b/linux/atlassian/jira/5/5.1.8/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.1.8/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.1.8/Makefile b/linux/atlassian/jira/5/5.1.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.1.8/docker-compose.yml b/linux/atlassian/jira/5/5.1.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.1.8/entrypoint.sh b/linux/atlassian/jira/5/5.1.8/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.1.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/atlassian/jira/5/5.1/.env b/linux/atlassian/jira/5/5.1/.env new file mode 100644 index 000000000..97a26d82a --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.1/Dockerfile b/linux/atlassian/jira/5/5.1/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.1/Makefile b/linux/atlassian/jira/5/5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/5/5.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/5/5.1/docker-compose.yml b/linux/atlassian/jira/5/5.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.1/entrypoint.sh b/linux/atlassian/jira/5/5.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/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/atlassian/jira/5/5.2.1/.env b/linux/atlassian/jira/5/5.2.1/.env new file mode 100644 index 000000000..a61d1af0c --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.1/Dockerfile b/linux/atlassian/jira/5/5.2.1/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.1/Makefile b/linux/atlassian/jira/5/5.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.1/docker-compose.yml b/linux/atlassian/jira/5/5.2.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.1/entrypoint.sh b/linux/atlassian/jira/5/5.2.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.10/.env b/linux/atlassian/jira/5/5.2.10/.env new file mode 100644 index 000000000..b92197745 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.10/Dockerfile b/linux/atlassian/jira/5/5.2.10/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.10/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.10/Makefile b/linux/atlassian/jira/5/5.2.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.10/docker-compose.yml b/linux/atlassian/jira/5/5.2.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.10/entrypoint.sh b/linux/atlassian/jira/5/5.2.10/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.11/.env b/linux/atlassian/jira/5/5.2.11/.env new file mode 100644 index 000000000..1fef4f9af --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.11/Dockerfile b/linux/atlassian/jira/5/5.2.11/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.11/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.11/Makefile b/linux/atlassian/jira/5/5.2.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.11/docker-compose.yml b/linux/atlassian/jira/5/5.2.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.11/entrypoint.sh b/linux/atlassian/jira/5/5.2.11/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.2/.env b/linux/atlassian/jira/5/5.2.2/.env new file mode 100644 index 000000000..4ec748460 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.2/Dockerfile b/linux/atlassian/jira/5/5.2.2/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.2/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.2/Makefile b/linux/atlassian/jira/5/5.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.2/docker-compose.yml b/linux/atlassian/jira/5/5.2.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.2/entrypoint.sh b/linux/atlassian/jira/5/5.2.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.3/.env b/linux/atlassian/jira/5/5.2.3/.env new file mode 100644 index 000000000..bc91b8bf2 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.3/Dockerfile b/linux/atlassian/jira/5/5.2.3/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.3/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.3/Makefile b/linux/atlassian/jira/5/5.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.3/docker-compose.yml b/linux/atlassian/jira/5/5.2.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.3/entrypoint.sh b/linux/atlassian/jira/5/5.2.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.4.1/.env b/linux/atlassian/jira/5/5.2.4.1/.env new file mode 100644 index 000000000..c03be146a --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.4.1/Dockerfile b/linux/atlassian/jira/5/5.2.4.1/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.4.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.4.1/Makefile b/linux/atlassian/jira/5/5.2.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.4.1/docker-compose.yml b/linux/atlassian/jira/5/5.2.4.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.4.1/entrypoint.sh b/linux/atlassian/jira/5/5.2.4.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.2.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/atlassian/jira/5/5.2.4/.env b/linux/atlassian/jira/5/5.2.4/.env new file mode 100644 index 000000000..574d6530c --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.4/Dockerfile b/linux/atlassian/jira/5/5.2.4/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.4/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.4/Makefile b/linux/atlassian/jira/5/5.2.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.4/docker-compose.yml b/linux/atlassian/jira/5/5.2.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.4/entrypoint.sh b/linux/atlassian/jira/5/5.2.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.5/.env b/linux/atlassian/jira/5/5.2.5/.env new file mode 100644 index 000000000..42ff7fb8f --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.5/Dockerfile b/linux/atlassian/jira/5/5.2.5/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.5/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.5/Makefile b/linux/atlassian/jira/5/5.2.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.5/docker-compose.yml b/linux/atlassian/jira/5/5.2.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.5/entrypoint.sh b/linux/atlassian/jira/5/5.2.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.6/.env b/linux/atlassian/jira/5/5.2.6/.env new file mode 100644 index 000000000..f7cfb4858 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.6/Dockerfile b/linux/atlassian/jira/5/5.2.6/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.6/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.6/Makefile b/linux/atlassian/jira/5/5.2.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.6/docker-compose.yml b/linux/atlassian/jira/5/5.2.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.6/entrypoint.sh b/linux/atlassian/jira/5/5.2.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.7/.env b/linux/atlassian/jira/5/5.2.7/.env new file mode 100644 index 000000000..58c1c2c87 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.7/Dockerfile b/linux/atlassian/jira/5/5.2.7/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.7/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.7/Makefile b/linux/atlassian/jira/5/5.2.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.7/docker-compose.yml b/linux/atlassian/jira/5/5.2.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.7/entrypoint.sh b/linux/atlassian/jira/5/5.2.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.8/.env b/linux/atlassian/jira/5/5.2.8/.env new file mode 100644 index 000000000..291647df6 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.8/Dockerfile b/linux/atlassian/jira/5/5.2.8/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.8/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.8/Makefile b/linux/atlassian/jira/5/5.2.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.8/docker-compose.yml b/linux/atlassian/jira/5/5.2.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.8/entrypoint.sh b/linux/atlassian/jira/5/5.2.8/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2.9/.env b/linux/atlassian/jira/5/5.2.9/.env new file mode 100644 index 000000000..200818cb8 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2.9/Dockerfile b/linux/atlassian/jira/5/5.2.9/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2.9/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2.9/Makefile b/linux/atlassian/jira/5/5.2.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/5/5.2.9/docker-compose.yml b/linux/atlassian/jira/5/5.2.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2.9/entrypoint.sh b/linux/atlassian/jira/5/5.2.9/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/5.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/atlassian/jira/5/5.2/.env b/linux/atlassian/jira/5/5.2/.env new file mode 100644 index 000000000..fd6592470 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/5/5.2/Dockerfile b/linux/atlassian/jira/5/5.2/Dockerfile new file mode 100644 index 000000000..04d21c08e --- /dev/null +++ b/linux/atlassian/jira/5/5.2/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/5/5.2/Makefile b/linux/atlassian/jira/5/5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/5/5.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/5/5.2/docker-compose.yml b/linux/atlassian/jira/5/5.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/5/5.2/entrypoint.sh b/linux/atlassian/jira/5/5.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/5/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 From 85e50312aaa600d9c9aa5267228fe7ac6581372b Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 00:53:42 +0300 Subject: [PATCH 009/144] most big jira images update --- linux/atlassian/jira/6/6.0.1/.env | 3 + linux/atlassian/jira/6/6.0.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.0.1/Makefile | 5 ++ .../atlassian/jira/6/6.0.1/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.0.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.0.2/.env | 3 + linux/atlassian/jira/6/6.0.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.0.2/Makefile | 5 ++ .../atlassian/jira/6/6.0.2/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.0.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.0.3/.env | 3 + linux/atlassian/jira/6/6.0.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.0.3/Makefile | 5 ++ .../atlassian/jira/6/6.0.3/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.0.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.0.4/.env | 3 + linux/atlassian/jira/6/6.0.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.0.4/Makefile | 5 ++ .../atlassian/jira/6/6.0.4/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.0.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.0.5/.env | 3 + linux/atlassian/jira/6/6.0.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.0.5/Makefile | 5 ++ .../atlassian/jira/6/6.0.5/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.0.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.0.6/.env | 3 + linux/atlassian/jira/6/6.0.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.0.6/Makefile | 5 ++ .../atlassian/jira/6/6.0.6/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.0.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.0.7/.env | 3 + linux/atlassian/jira/6/6.0.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.0.7/Makefile | 5 ++ .../atlassian/jira/6/6.0.7/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.0.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.0.8/.env | 3 + linux/atlassian/jira/6/6.0.8/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.0.8/Makefile | 5 ++ .../atlassian/jira/6/6.0.8/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.0.8/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.0/.env | 3 + linux/atlassian/jira/6/6.0/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.0/Makefile | 5 ++ linux/atlassian/jira/6/6.0/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.0/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1.1/.env | 3 + linux/atlassian/jira/6/6.1.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1.1/Makefile | 5 ++ .../atlassian/jira/6/6.1.1/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1.2/.env | 3 + linux/atlassian/jira/6/6.1.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1.2/Makefile | 5 ++ .../atlassian/jira/6/6.1.2/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1.3/.env | 3 + linux/atlassian/jira/6/6.1.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1.3/Makefile | 5 ++ .../atlassian/jira/6/6.1.3/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1.4/.env | 3 + linux/atlassian/jira/6/6.1.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1.4/Makefile | 5 ++ .../atlassian/jira/6/6.1.4/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1.5/.env | 3 + linux/atlassian/jira/6/6.1.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1.5/Makefile | 5 ++ .../atlassian/jira/6/6.1.5/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1.6/.env | 3 + linux/atlassian/jira/6/6.1.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1.6/Makefile | 5 ++ .../atlassian/jira/6/6.1.6/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1.7/.env | 3 + linux/atlassian/jira/6/6.1.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1.7/Makefile | 5 ++ .../atlassian/jira/6/6.1.7/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1.8/.env | 3 + linux/atlassian/jira/6/6.1.8/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1.8/Makefile | 5 ++ .../atlassian/jira/6/6.1.8/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1.8/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1.9/.env | 3 + linux/atlassian/jira/6/6.1.9/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1.9/Makefile | 5 ++ .../atlassian/jira/6/6.1.9/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1.9/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.1/.env | 3 + linux/atlassian/jira/6/6.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.1/Makefile | 5 ++ linux/atlassian/jira/6/6.1/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.2.1/.env | 3 + linux/atlassian/jira/6/6.2.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.2.1/Makefile | 5 ++ .../atlassian/jira/6/6.2.1/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.2.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.2.2/.env | 3 + linux/atlassian/jira/6/6.2.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.2.2/Makefile | 5 ++ .../atlassian/jira/6/6.2.2/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.2.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.2.3/.env | 3 + linux/atlassian/jira/6/6.2.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.2.3/Makefile | 5 ++ .../atlassian/jira/6/6.2.3/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.2.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.2.4/.env | 3 + linux/atlassian/jira/6/6.2.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.2.4/Makefile | 5 ++ .../atlassian/jira/6/6.2.4/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.2.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.2.5/.env | 3 + linux/atlassian/jira/6/6.2.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.2.5/Makefile | 5 ++ .../atlassian/jira/6/6.2.5/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.2.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.2.6/.env | 3 + linux/atlassian/jira/6/6.2.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.2.6/Makefile | 5 ++ .../atlassian/jira/6/6.2.6/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.2.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.2.7/.env | 3 + linux/atlassian/jira/6/6.2.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.2.7/Makefile | 5 ++ .../atlassian/jira/6/6.2.7/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.2.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.2/.env | 3 + linux/atlassian/jira/6/6.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.2/Makefile | 5 ++ linux/atlassian/jira/6/6.2/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.1/.env | 3 + linux/atlassian/jira/6/6.3.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.1/Makefile | 5 ++ .../atlassian/jira/6/6.3.1/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.10/.env | 3 + linux/atlassian/jira/6/6.3.10/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.10/Makefile | 5 ++ .../jira/6/6.3.10/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.10/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.11/.env | 3 + linux/atlassian/jira/6/6.3.11/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.11/Makefile | 5 ++ .../jira/6/6.3.11/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.11/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.12/.env | 3 + linux/atlassian/jira/6/6.3.12/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.12/Makefile | 5 ++ .../jira/6/6.3.12/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.12/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.13/.env | 3 + linux/atlassian/jira/6/6.3.13/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.13/Makefile | 5 ++ .../jira/6/6.3.13/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.13/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.14/.env | 3 + linux/atlassian/jira/6/6.3.14/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.14/Makefile | 5 ++ .../jira/6/6.3.14/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.14/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.15/.env | 3 + linux/atlassian/jira/6/6.3.15/Dockerfile | 8 +- linux/atlassian/jira/6/6.3.15/Makefile | 8 +- .../jira/6/6.3.15/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.3/.env | 3 + linux/atlassian/jira/6/6.3.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.3/Makefile | 5 ++ .../atlassian/jira/6/6.3.3/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.4/.env | 3 + linux/atlassian/jira/6/6.3.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.4/Makefile | 5 ++ .../atlassian/jira/6/6.3.4/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.5/.env | 3 + linux/atlassian/jira/6/6.3.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.5/Makefile | 5 ++ .../atlassian/jira/6/6.3.5/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.6/.env | 3 + linux/atlassian/jira/6/6.3.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.6/Makefile | 5 ++ .../atlassian/jira/6/6.3.6/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.7/.env | 3 + linux/atlassian/jira/6/6.3.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.7/Makefile | 5 ++ .../atlassian/jira/6/6.3.7/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.8/.env | 3 + linux/atlassian/jira/6/6.3.8/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.8/Makefile | 5 ++ .../atlassian/jira/6/6.3.8/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.8/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3.9/.env | 3 + linux/atlassian/jira/6/6.3.9/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3.9/Makefile | 5 ++ .../atlassian/jira/6/6.3.9/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3.9/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.3/.env | 3 + linux/atlassian/jira/6/6.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.3/Makefile | 5 ++ linux/atlassian/jira/6/6.3/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.1/.env | 3 + linux/atlassian/jira/6/6.4.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.1/Makefile | 5 ++ .../atlassian/jira/6/6.4.1/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.10/.env | 3 + linux/atlassian/jira/6/6.4.10/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.10/Makefile | 5 ++ .../jira/6/6.4.10/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.10/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.11/.env | 3 + linux/atlassian/jira/6/6.4.11/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.11/Makefile | 5 ++ .../jira/6/6.4.11/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.11/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.12/.env | 3 + linux/atlassian/jira/6/6.4.12/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.12/Makefile | 5 ++ .../jira/6/6.4.12/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.12/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.13/.env | 3 + linux/atlassian/jira/6/6.4.13/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.13/Makefile | 5 ++ .../jira/6/6.4.13/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.13/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.14/.env | 3 + linux/atlassian/jira/6/6.4.14/Dockerfile | 8 +- linux/atlassian/jira/6/6.4.14/Makefile | 8 +- .../jira/6/6.4.14/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.2/.env | 3 + linux/atlassian/jira/6/6.4.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.2/Makefile | 5 ++ .../atlassian/jira/6/6.4.2/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.3/.env | 3 + linux/atlassian/jira/6/6.4.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.3/Makefile | 5 ++ .../atlassian/jira/6/6.4.3/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.4/.env | 3 + linux/atlassian/jira/6/6.4.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.4/Makefile | 5 ++ .../atlassian/jira/6/6.4.4/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.5/.env | 3 + linux/atlassian/jira/6/6.4.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.5/Makefile | 5 ++ .../atlassian/jira/6/6.4.5/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.6/.env | 3 + linux/atlassian/jira/6/6.4.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.6/Makefile | 5 ++ .../atlassian/jira/6/6.4.6/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.7/.env | 3 + linux/atlassian/jira/6/6.4.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.7/Makefile | 5 ++ .../atlassian/jira/6/6.4.7/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.8/.env | 3 + linux/atlassian/jira/6/6.4.8/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.8/Makefile | 5 ++ .../atlassian/jira/6/6.4.8/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.8/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4.9/.env | 3 + linux/atlassian/jira/6/6.4.9/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4.9/Makefile | 5 ++ .../atlassian/jira/6/6.4.9/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4.9/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/6/6.4/.env | 3 + linux/atlassian/jira/6/6.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/6/6.4/Makefile | 5 ++ linux/atlassian/jira/6/6.4/docker-compose.yml | 9 ++ linux/atlassian/jira/6/6.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/7/7.0.0/.env | 3 + linux/atlassian/jira/7/7.0.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.0.0/Makefile | 7 +- .../atlassian/jira/7/7.0.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.0.10/.env | 3 + linux/atlassian/jira/7/7.0.10/Dockerfile | 7 +- linux/atlassian/jira/7/7.0.10/Makefile | 7 +- .../jira/7/7.0.10/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.0.11/.env | 3 + linux/atlassian/jira/7/7.0.11/Dockerfile | 7 +- linux/atlassian/jira/7/7.0.11/Makefile | 7 +- .../jira/7/7.0.11/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.0.2/.env | 3 + linux/atlassian/jira/7/7.0.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.0.2/Makefile | 7 +- .../atlassian/jira/7/7.0.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.0.4/.env | 3 + linux/atlassian/jira/7/7.0.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.0.4/Makefile | 7 +- .../atlassian/jira/7/7.0.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.0.5/.env | 3 + linux/atlassian/jira/7/7.0.5/Dockerfile | 7 +- linux/atlassian/jira/7/7.0.5/Makefile | 7 +- .../atlassian/jira/7/7.0.5/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.1.0/.env | 3 + linux/atlassian/jira/7/7.1.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.1.0/Makefile | 7 +- .../atlassian/jira/7/7.1.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.1.1/.env | 3 + linux/atlassian/jira/7/7.1.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.1.1/Makefile | 7 +- .../atlassian/jira/7/7.1.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.1.10/.env | 3 + linux/atlassian/jira/7/7.1.10/Dockerfile | 7 +- linux/atlassian/jira/7/7.1.10/Makefile | 7 +- .../jira/7/7.1.10/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.1.2/.env | 3 + linux/atlassian/jira/7/7.1.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.1.2/Makefile | 7 +- .../atlassian/jira/7/7.1.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.1.4/.env | 3 + linux/atlassian/jira/7/7.1.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.1.4/Makefile | 7 +- .../atlassian/jira/7/7.1.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.1.6/.env | 3 + linux/atlassian/jira/7/7.1.6/Dockerfile | 7 +- linux/atlassian/jira/7/7.1.6/Makefile | 7 +- .../atlassian/jira/7/7.1.6/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.1.7/.env | 3 + linux/atlassian/jira/7/7.1.7/Dockerfile | 7 +- linux/atlassian/jira/7/7.1.7/Makefile | 7 +- .../atlassian/jira/7/7.1.7/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.1.8/.env | 3 + linux/atlassian/jira/7/7.1.8/Dockerfile | 7 +- linux/atlassian/jira/7/7.1.8/Makefile | 7 +- .../atlassian/jira/7/7.1.8/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.1.9/.env | 3 + linux/atlassian/jira/7/7.1.9/Dockerfile | 7 +- linux/atlassian/jira/7/7.1.9/Makefile | 7 +- .../atlassian/jira/7/7.1.9/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.10.0/.env | 3 + linux/atlassian/jira/7/7.10.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.10.0/Makefile | 7 +- .../jira/7/7.10.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.10.1/.env | 3 + linux/atlassian/jira/7/7.10.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.10.1/Makefile | 7 +- .../jira/7/7.10.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.10.2/.env | 3 + linux/atlassian/jira/7/7.10.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.10.2/Makefile | 7 +- .../jira/7/7.10.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.11.0/.env | 3 + linux/atlassian/jira/7/7.11.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.11.0/Makefile | 7 +- .../jira/7/7.11.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.11.1/.env | 3 + linux/atlassian/jira/7/7.11.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.11.1/Makefile | 7 +- .../jira/7/7.11.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.11.2/.env | 3 + linux/atlassian/jira/7/7.11.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.11.2/Makefile | 7 +- .../jira/7/7.11.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.12.0/.env | 3 + linux/atlassian/jira/7/7.12.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.12.0/Makefile | 7 +- .../jira/7/7.12.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.12.1/.env | 3 + linux/atlassian/jira/7/7.12.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.12.1/Makefile | 7 +- .../jira/7/7.12.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.12.3/.env | 3 + linux/atlassian/jira/7/7.12.3/Dockerfile | 7 +- linux/atlassian/jira/7/7.12.3/Makefile | 7 +- .../jira/7/7.12.3/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.0/.env | 3 + linux/atlassian/jira/7/7.13.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.0/Makefile | 7 +- .../jira/7/7.13.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.1/.env | 3 + linux/atlassian/jira/7/7.13.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.1/Makefile | 7 +- .../jira/7/7.13.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.11/.env | 3 + linux/atlassian/jira/7/7.13.11/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.11/Makefile | 7 +- .../jira/7/7.13.11/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.12/.env | 3 + linux/atlassian/jira/7/7.13.12/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.12/Makefile | 7 +- .../jira/7/7.13.12/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.13/.env | 3 + linux/atlassian/jira/7/7.13.13/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.13/Makefile | 7 +- .../jira/7/7.13.13/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.14/.env | 3 + linux/atlassian/jira/7/7.13.14/Dockerfile | 50 +++++++++++ linux/atlassian/jira/7/7.13.14/Makefile | 5 ++ .../jira/7/7.13.14/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.14/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/7/7.13.15/.env | 3 + linux/atlassian/jira/7/7.13.15/Dockerfile | 50 +++++++++++ linux/atlassian/jira/7/7.13.15/Makefile | 5 ++ .../jira/7/7.13.15/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.15/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/7/7.13.16/.env | 3 + linux/atlassian/jira/7/7.13.16/Dockerfile | 50 +++++++++++ linux/atlassian/jira/7/7.13.16/Makefile | 5 ++ .../jira/7/7.13.16/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.16/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/7/7.13.17/.env | 3 + linux/atlassian/jira/7/7.13.17/Dockerfile | 50 +++++++++++ linux/atlassian/jira/7/7.13.17/Makefile | 5 ++ .../jira/7/7.13.17/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.17/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/7/7.13.18/.env | 3 + linux/atlassian/jira/7/7.13.18/Dockerfile | 50 +++++++++++ linux/atlassian/jira/7/7.13.18/Makefile | 5 ++ .../jira/7/7.13.18/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.18/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/7/7.13.2/.env | 3 + linux/atlassian/jira/7/7.13.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.2/Makefile | 7 +- .../jira/7/7.13.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.3/.env | 3 + linux/atlassian/jira/7/7.13.3/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.3/Makefile | 7 +- .../jira/7/7.13.3/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.4/.env | 3 + linux/atlassian/jira/7/7.13.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.4/Makefile | 7 +- .../jira/7/7.13.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.5/.env | 3 + linux/atlassian/jira/7/7.13.5/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.5/Makefile | 7 +- .../jira/7/7.13.5/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.6/.env | 3 + linux/atlassian/jira/7/7.13.6/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.6/Makefile | 7 +- .../jira/7/7.13.6/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.8/.env | 3 + linux/atlassian/jira/7/7.13.8/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.8/Makefile | 7 +- .../jira/7/7.13.8/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.13.9/.env | 3 + linux/atlassian/jira/7/7.13.9/Dockerfile | 7 +- linux/atlassian/jira/7/7.13.9/Makefile | 7 +- .../jira/7/7.13.9/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.0/.env | 3 + linux/atlassian/jira/7/7.2.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.0/Makefile | 7 +- .../atlassian/jira/7/7.2.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.1/.env | 3 + linux/atlassian/jira/7/7.2.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.1/Makefile | 7 +- .../atlassian/jira/7/7.2.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.10/.env | 3 + linux/atlassian/jira/7/7.2.10/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.10/Makefile | 7 +- .../jira/7/7.2.10/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.11/.env | 3 + linux/atlassian/jira/7/7.2.11/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.11/Makefile | 7 +- .../jira/7/7.2.11/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.12/.env | 3 + linux/atlassian/jira/7/7.2.12/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.12/Makefile | 7 +- .../jira/7/7.2.12/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.13/.env | 3 + linux/atlassian/jira/7/7.2.13/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.13/Makefile | 7 +- .../jira/7/7.2.13/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.14/.env | 3 + linux/atlassian/jira/7/7.2.14/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.14/Makefile | 7 +- .../jira/7/7.2.14/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.15/.env | 3 + linux/atlassian/jira/7/7.2.15/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.15/Makefile | 7 +- .../jira/7/7.2.15/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.2/.env | 3 + linux/atlassian/jira/7/7.2.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.2/Makefile | 7 +- .../atlassian/jira/7/7.2.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.3/.env | 3 + linux/atlassian/jira/7/7.2.3/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.3/Makefile | 7 +- .../atlassian/jira/7/7.2.3/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.4/.env | 3 + linux/atlassian/jira/7/7.2.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.4/Makefile | 7 +- .../atlassian/jira/7/7.2.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.6/.env | 3 + linux/atlassian/jira/7/7.2.6/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.6/Makefile | 7 +- .../atlassian/jira/7/7.2.6/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.7/.env | 3 + linux/atlassian/jira/7/7.2.7/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.7/Makefile | 7 +- .../atlassian/jira/7/7.2.7/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.8/.env | 3 + linux/atlassian/jira/7/7.2.8/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.8/Makefile | 7 +- .../atlassian/jira/7/7.2.8/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.2.9/.env | 3 + linux/atlassian/jira/7/7.2.9/Dockerfile | 7 +- linux/atlassian/jira/7/7.2.9/Makefile | 7 +- .../atlassian/jira/7/7.2.9/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.0/.env | 3 + linux/atlassian/jira/7/7.3.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.0/Makefile | 7 +- .../atlassian/jira/7/7.3.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.1/.env | 3 + linux/atlassian/jira/7/7.3.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.1/Makefile | 7 +- .../atlassian/jira/7/7.3.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.2/.env | 3 + linux/atlassian/jira/7/7.3.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.2/Makefile | 7 +- .../atlassian/jira/7/7.3.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.3/.env | 3 + linux/atlassian/jira/7/7.3.3/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.3/Makefile | 7 +- .../atlassian/jira/7/7.3.3/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.4/.env | 3 + linux/atlassian/jira/7/7.3.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.4/Makefile | 7 +- .../atlassian/jira/7/7.3.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.5/.env | 3 + linux/atlassian/jira/7/7.3.5/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.5/Makefile | 7 +- .../atlassian/jira/7/7.3.5/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.6/.env | 3 + linux/atlassian/jira/7/7.3.6/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.6/Makefile | 7 +- .../atlassian/jira/7/7.3.6/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.7/.env | 3 + linux/atlassian/jira/7/7.3.7/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.7/Makefile | 7 +- .../atlassian/jira/7/7.3.7/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.8/.env | 3 + linux/atlassian/jira/7/7.3.8/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.8/Makefile | 7 +- .../atlassian/jira/7/7.3.8/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.3.9/.env | 3 + linux/atlassian/jira/7/7.3.9/Dockerfile | 7 +- linux/atlassian/jira/7/7.3.9/Makefile | 7 +- .../atlassian/jira/7/7.3.9/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.4.0/.env | 3 + linux/atlassian/jira/7/7.4.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.4.0/Makefile | 7 +- .../atlassian/jira/7/7.4.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.4.1/.env | 3 + linux/atlassian/jira/7/7.4.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.4.1/Makefile | 7 +- .../atlassian/jira/7/7.4.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.4.2/.env | 3 + linux/atlassian/jira/7/7.4.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.4.2/Makefile | 7 +- .../atlassian/jira/7/7.4.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.4.3/.env | 3 + linux/atlassian/jira/7/7.4.3/Dockerfile | 7 +- linux/atlassian/jira/7/7.4.3/Makefile | 7 +- .../atlassian/jira/7/7.4.3/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.4.4/.env | 3 + linux/atlassian/jira/7/7.4.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.4.4/Makefile | 7 +- .../atlassian/jira/7/7.4.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.4.5/.env | 3 + linux/atlassian/jira/7/7.4.5/Dockerfile | 7 +- linux/atlassian/jira/7/7.4.5/Makefile | 7 +- .../atlassian/jira/7/7.4.5/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.4.6/.env | 3 + linux/atlassian/jira/7/7.4.6/Dockerfile | 7 +- linux/atlassian/jira/7/7.4.6/Makefile | 7 +- .../atlassian/jira/7/7.4.6/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.5.0/.env | 3 + linux/atlassian/jira/7/7.5.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.5.0/Makefile | 7 +- .../atlassian/jira/7/7.5.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.5.1/.env | 3 + linux/atlassian/jira/7/7.5.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.5.1/Makefile | 7 +- .../atlassian/jira/7/7.5.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.5.2/.env | 3 + linux/atlassian/jira/7/7.5.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.5.2/Makefile | 7 +- .../atlassian/jira/7/7.5.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.5.3/.env | 3 + linux/atlassian/jira/7/7.5.3/Dockerfile | 7 +- linux/atlassian/jira/7/7.5.3/Makefile | 7 +- .../atlassian/jira/7/7.5.3/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.5.4/.env | 3 + linux/atlassian/jira/7/7.5.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.5.4/Makefile | 7 +- .../atlassian/jira/7/7.5.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.0/.env | 3 + linux/atlassian/jira/7/7.6.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.0/Makefile | 7 +- .../atlassian/jira/7/7.6.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.1/.env | 3 + linux/atlassian/jira/7/7.6.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.1/Makefile | 7 +- .../atlassian/jira/7/7.6.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.10/.env | 3 + linux/atlassian/jira/7/7.6.10/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.10/Makefile | 7 +- .../jira/7/7.6.10/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.11/.env | 3 + linux/atlassian/jira/7/7.6.11/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.11/Makefile | 7 +- .../jira/7/7.6.11/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.12/.env | 3 + linux/atlassian/jira/7/7.6.12/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.12/Makefile | 7 +- .../jira/7/7.6.12/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.13/.env | 3 + linux/atlassian/jira/7/7.6.13/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.13/Makefile | 7 +- .../jira/7/7.6.13/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.14/.env | 3 + linux/atlassian/jira/7/7.6.14/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.14/Makefile | 7 +- .../jira/7/7.6.14/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.15/.env | 3 + linux/atlassian/jira/7/7.6.15/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.15/Makefile | 7 +- .../jira/7/7.6.15/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.16/.env | 3 + linux/atlassian/jira/7/7.6.16/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.16/Makefile | 7 +- .../jira/7/7.6.16/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.17/.env | 3 + linux/atlassian/jira/7/7.6.17/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.17/Makefile | 7 +- .../jira/7/7.6.17/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.2/.env | 3 + linux/atlassian/jira/7/7.6.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.2/Makefile | 7 +- .../atlassian/jira/7/7.6.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.3/.env | 3 + linux/atlassian/jira/7/7.6.3/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.3/Makefile | 7 +- .../atlassian/jira/7/7.6.3/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.4/.env | 3 + linux/atlassian/jira/7/7.6.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.4/Makefile | 7 +- .../atlassian/jira/7/7.6.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.6/.env | 3 + linux/atlassian/jira/7/7.6.6/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.6/Makefile | 7 +- .../atlassian/jira/7/7.6.6/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.7/.env | 3 + linux/atlassian/jira/7/7.6.7/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.7/Makefile | 7 +- .../atlassian/jira/7/7.6.7/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.8/.env | 3 + linux/atlassian/jira/7/7.6.8/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.8/Makefile | 7 +- .../atlassian/jira/7/7.6.8/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.6.9/.env | 3 + linux/atlassian/jira/7/7.6.9/Dockerfile | 7 +- linux/atlassian/jira/7/7.6.9/Makefile | 7 +- .../atlassian/jira/7/7.6.9/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.7.0/.env | 3 + linux/atlassian/jira/7/7.7.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.7.0/Makefile | 7 +- .../atlassian/jira/7/7.7.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.7.1/.env | 3 + linux/atlassian/jira/7/7.7.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.7.1/Makefile | 7 +- .../atlassian/jira/7/7.7.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.7.2/.env | 3 + linux/atlassian/jira/7/7.7.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.7.2/Makefile | 7 +- .../atlassian/jira/7/7.7.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.7.4/.env | 3 + linux/atlassian/jira/7/7.7.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.7.4/Makefile | 7 +- .../atlassian/jira/7/7.7.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.8.0/.env | 3 + linux/atlassian/jira/7/7.8.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.8.0/Makefile | 7 +- .../atlassian/jira/7/7.8.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.8.1/.env | 3 + linux/atlassian/jira/7/7.8.1/Dockerfile | 7 +- linux/atlassian/jira/7/7.8.1/Makefile | 7 +- .../atlassian/jira/7/7.8.1/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.8.2/.env | 3 + linux/atlassian/jira/7/7.8.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.8.2/Makefile | 7 +- .../atlassian/jira/7/7.8.2/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.8.4/.env | 3 + linux/atlassian/jira/7/7.8.4/Dockerfile | 7 +- linux/atlassian/jira/7/7.8.4/Makefile | 7 +- .../atlassian/jira/7/7.8.4/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.9.0/.env | 3 + linux/atlassian/jira/7/7.9.0/Dockerfile | 7 +- linux/atlassian/jira/7/7.9.0/Makefile | 7 +- .../atlassian/jira/7/7.9.0/docker-compose.yml | 9 ++ linux/atlassian/jira/7/7.9.2/.env | 3 + linux/atlassian/jira/7/7.9.2/Dockerfile | 7 +- linux/atlassian/jira/7/7.9.2/Makefile | 7 +- .../atlassian/jira/7/7.9.2/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.0.0/.env | 3 + linux/atlassian/jira/8/8.0.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.0.0/Makefile | 7 +- .../atlassian/jira/8/8.0.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.0.2/.env | 3 + linux/atlassian/jira/8/8.0.2/Dockerfile | 7 +- linux/atlassian/jira/8/8.0.2/Makefile | 7 +- .../atlassian/jira/8/8.0.2/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.0.3/.env | 3 + linux/atlassian/jira/8/8.0.3/Dockerfile | 7 +- linux/atlassian/jira/8/8.0.3/Makefile | 7 +- .../atlassian/jira/8/8.0.3/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.1.0/.env | 3 + linux/atlassian/jira/8/8.1.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.1.0/Makefile | 7 +- .../atlassian/jira/8/8.1.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.1.1/.env | 3 + linux/atlassian/jira/8/8.1.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.1.1/Makefile | 7 +- .../atlassian/jira/8/8.1.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.1.2/.env | 3 + linux/atlassian/jira/8/8.1.2/Dockerfile | 7 +- linux/atlassian/jira/8/8.1.2/Makefile | 7 +- .../atlassian/jira/8/8.1.2/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.1.3/.env | 3 + linux/atlassian/jira/8/8.1.3/Dockerfile | 7 +- linux/atlassian/jira/8/8.1.3/Makefile | 7 +- .../atlassian/jira/8/8.1.3/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.10.0/.env | 3 + linux/atlassian/jira/8/8.10.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.10.0/Makefile | 8 +- .../jira/8/8.10.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.10.1/.env | 3 + linux/atlassian/jira/8/8.10.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.10.1/Makefile | 8 +- .../jira/8/8.10.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.11.0/.env | 3 + linux/atlassian/jira/8/8.11.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.11.0/Makefile | 8 +- .../jira/8/8.11.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.11.1/.env | 3 + linux/atlassian/jira/8/8.11.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.11.1/Makefile | 8 +- .../jira/8/8.11.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.12.0/.env | 3 + linux/atlassian/jira/8/8.12.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.12.0/Makefile | 8 +- .../jira/8/8.12.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.12.1/.env | 3 + linux/atlassian/jira/8/8.12.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.12.1/Makefile | 8 +- .../jira/8/8.12.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.12.2/.env | 3 + linux/atlassian/jira/8/8.12.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.12.2/Makefile | 5 ++ .../jira/8/8.12.2/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.12.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.12.3/.env | 3 + linux/atlassian/jira/8/8.12.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.12.3/Makefile | 5 ++ .../jira/8/8.12.3/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.12.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.13.0/.env | 3 + linux/atlassian/jira/8/8.13.0/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.13.0/Makefile | 5 ++ .../jira/8/8.13.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.13.0/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.13.1/.env | 3 + linux/atlassian/jira/8/8.13.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.13.1/Makefile | 5 ++ .../jira/8/8.13.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.13.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.13.2/.env | 3 + linux/atlassian/jira/8/8.13.2/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.13.2/Makefile | 5 ++ .../jira/8/8.13.2/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.13.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.13.3/.env | 3 + linux/atlassian/jira/8/8.13.3/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.13.3/Makefile | 5 ++ .../jira/8/8.13.3/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.13.3/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.13.4/.env | 3 + linux/atlassian/jira/8/8.13.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.13.4/Makefile | 5 ++ .../jira/8/8.13.4/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.13.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.13.5/.env | 3 + linux/atlassian/jira/8/8.13.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.13.5/Makefile | 5 ++ .../jira/8/8.13.5/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.13.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.13.6/.env | 3 + linux/atlassian/jira/8/8.13.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.13.6/Makefile | 5 ++ .../jira/8/8.13.6/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.13.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.13.7/.env | 3 + linux/atlassian/jira/8/8.13.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.13.7/Makefile | 5 ++ .../jira/8/8.13.7/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.13.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.14.0/.env | 3 + linux/atlassian/jira/8/8.14.0/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.14.0/Makefile | 5 ++ .../jira/8/8.14.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.14.0/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.14.1/.env | 3 + linux/atlassian/jira/8/8.14.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.14.1/Makefile | 5 ++ .../jira/8/8.14.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.14.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.15.0/.env | 3 + linux/atlassian/jira/8/8.15.0/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.15.0/Makefile | 5 ++ .../jira/8/8.15.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.15.0/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.15.1/.env | 3 + linux/atlassian/jira/8/8.15.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.15.1/Makefile | 5 ++ .../jira/8/8.15.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.15.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.16.0/.env | 3 + linux/atlassian/jira/8/8.16.0/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.16.0/Makefile | 5 ++ .../jira/8/8.16.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.16.0/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.16.1/.env | 3 + linux/atlassian/jira/8/8.16.1/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.16.1/Makefile | 5 ++ .../jira/8/8.16.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.16.1/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.17.0/.env | 3 + linux/atlassian/jira/8/8.17.0/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.17.0/Makefile | 5 ++ .../jira/8/8.17.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.17.0/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.2.0/.env | 3 + linux/atlassian/jira/8/8.2.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.2.0/Makefile | 7 +- .../atlassian/jira/8/8.2.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.2.1/.env | 3 + linux/atlassian/jira/8/8.2.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.2.1/Makefile | 7 +- .../atlassian/jira/8/8.2.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.2.2/.env | 3 + linux/atlassian/jira/8/8.2.2/Dockerfile | 7 +- linux/atlassian/jira/8/8.2.2/Makefile | 7 +- .../atlassian/jira/8/8.2.2/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.2.3/.env | 3 + linux/atlassian/jira/8/8.2.3/Dockerfile | 7 +- linux/atlassian/jira/8/8.2.3/Makefile | 7 +- .../atlassian/jira/8/8.2.3/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.2.4/.env | 3 + linux/atlassian/jira/8/8.2.4/Dockerfile | 7 +- linux/atlassian/jira/8/8.2.4/Makefile | 7 +- .../atlassian/jira/8/8.2.4/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.2.5/.env | 3 + linux/atlassian/jira/8/8.2.5/Dockerfile | 7 +- linux/atlassian/jira/8/8.2.5/Makefile | 7 +- .../atlassian/jira/8/8.2.5/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.2.6/.env | 3 + linux/atlassian/jira/8/8.2.6/Dockerfile | 7 +- linux/atlassian/jira/8/8.2.6/Makefile | 7 +- .../atlassian/jira/8/8.2.6/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.3.0/.env | 3 + linux/atlassian/jira/8/8.3.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.3.0/Makefile | 7 +- .../atlassian/jira/8/8.3.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.3.1/.env | 3 + linux/atlassian/jira/8/8.3.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.3.1/Makefile | 7 +- .../atlassian/jira/8/8.3.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.3.2/.env | 3 + linux/atlassian/jira/8/8.3.2/Dockerfile | 7 +- linux/atlassian/jira/8/8.3.2/Makefile | 7 +- .../atlassian/jira/8/8.3.2/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.3.3/.env | 3 + linux/atlassian/jira/8/8.3.3/Dockerfile | 7 +- linux/atlassian/jira/8/8.3.3/Makefile | 7 +- .../atlassian/jira/8/8.3.3/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.3.4/.env | 3 + linux/atlassian/jira/8/8.3.4/Dockerfile | 7 +- linux/atlassian/jira/8/8.3.4/Makefile | 7 +- .../atlassian/jira/8/8.3.4/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.3.5/.env | 3 + linux/atlassian/jira/8/8.3.5/Dockerfile | 7 +- linux/atlassian/jira/8/8.3.5/Makefile | 7 +- .../atlassian/jira/8/8.3.5/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.4.0/.env | 3 + linux/atlassian/jira/8/8.4.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.4.0/Makefile | 7 +- .../atlassian/jira/8/8.4.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.4.1/.env | 3 + linux/atlassian/jira/8/8.4.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.4.1/Makefile | 7 +- .../atlassian/jira/8/8.4.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.4.2/.env | 3 + linux/atlassian/jira/8/8.4.2/Dockerfile | 7 +- linux/atlassian/jira/8/8.4.2/Makefile | 7 +- .../atlassian/jira/8/8.4.2/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.4.3/.env | 3 + linux/atlassian/jira/8/8.4.3/Dockerfile | 7 +- linux/atlassian/jira/8/8.4.3/Makefile | 7 +- .../atlassian/jira/8/8.4.3/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.0/.env | 3 + linux/atlassian/jira/8/8.5.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.5.0/Makefile | 7 +- .../atlassian/jira/8/8.5.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.1/.env | 3 + linux/atlassian/jira/8/8.5.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.5.1/Makefile | 7 +- .../atlassian/jira/8/8.5.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.10/.env | 3 + linux/atlassian/jira/8/8.5.10/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.10/Makefile | 5 ++ .../jira/8/8.5.10/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.10/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.11/.env | 3 + linux/atlassian/jira/8/8.5.11/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.11/Makefile | 5 ++ .../jira/8/8.5.11/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.11/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.12/.env | 3 + linux/atlassian/jira/8/8.5.12/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.12/Makefile | 5 ++ .../jira/8/8.5.12/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.12/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.13/.env | 3 + linux/atlassian/jira/8/8.5.13/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.13/Makefile | 5 ++ .../jira/8/8.5.13/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.13/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.14/.env | 3 + linux/atlassian/jira/8/8.5.14/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.14/Makefile | 5 ++ .../jira/8/8.5.14/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.14/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.15/.env | 3 + linux/atlassian/jira/8/8.5.15/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.15/Makefile | 5 ++ .../jira/8/8.5.15/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.15/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.2/.env | 3 + linux/atlassian/jira/8/8.5.2/Dockerfile | 7 +- linux/atlassian/jira/8/8.5.2/Makefile | 7 +- .../atlassian/jira/8/8.5.2/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.3/.env | 3 + linux/atlassian/jira/8/8.5.3/Dockerfile | 7 +- linux/atlassian/jira/8/8.5.3/Makefile | 7 +- .../atlassian/jira/8/8.5.3/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.4/.env | 3 + linux/atlassian/jira/8/8.5.4/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.4/Makefile | 5 ++ .../atlassian/jira/8/8.5.4/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.4/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.5/.env | 3 + linux/atlassian/jira/8/8.5.5/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.5/Makefile | 5 ++ .../atlassian/jira/8/8.5.5/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.5/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.6/.env | 3 + linux/atlassian/jira/8/8.5.6/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.6/Makefile | 5 ++ .../atlassian/jira/8/8.5.6/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.6/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.7/.env | 3 + linux/atlassian/jira/8/8.5.7/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.7/Makefile | 5 ++ .../atlassian/jira/8/8.5.7/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.7/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.8/.env | 3 + linux/atlassian/jira/8/8.5.8/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.8/Makefile | 5 ++ .../atlassian/jira/8/8.5.8/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.8/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.9/.env | 3 + linux/atlassian/jira/8/8.5.9/Dockerfile | 50 +++++++++++ linux/atlassian/jira/8/8.5.9/Makefile | 5 ++ .../atlassian/jira/8/8.5.9/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.5.9/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.6.0/.env | 3 + linux/atlassian/jira/8/8.6.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.6.0/Makefile | 7 +- .../atlassian/jira/8/8.6.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.6.1/.env | 3 + linux/atlassian/jira/8/8.6.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.6.1/Makefile | 7 +- .../atlassian/jira/8/8.6.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.7.0/.env | 3 + linux/atlassian/jira/8/8.7.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.7.0/Makefile | 7 +- .../atlassian/jira/8/8.7.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.7.1/.env | 3 + linux/atlassian/jira/8/8.7.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.7.1/Makefile | 7 +- .../atlassian/jira/8/8.7.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.8.0/.env | 3 + linux/atlassian/jira/8/8.8.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.8.0/Makefile | 8 +- .../atlassian/jira/8/8.8.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.8.1/.env | 3 + linux/atlassian/jira/8/8.8.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.8.1/Makefile | 8 +- .../atlassian/jira/8/8.8.1/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.9.0/.env | 3 + linux/atlassian/jira/8/8.9.0/Dockerfile | 7 +- linux/atlassian/jira/8/8.9.0/Makefile | 8 +- .../atlassian/jira/8/8.9.0/docker-compose.yml | 9 ++ linux/atlassian/jira/8/8.9.1/.env | 3 + linux/atlassian/jira/8/8.9.1/Dockerfile | 7 +- linux/atlassian/jira/8/8.9.1/Makefile | 8 +- .../atlassian/jira/8/8.9.1/docker-compose.yml | 9 ++ 1021 files changed, 16910 insertions(+), 732 deletions(-) create mode 100644 linux/atlassian/jira/6/6.0.1/.env create mode 100644 linux/atlassian/jira/6/6.0.1/Dockerfile create mode 100644 linux/atlassian/jira/6/6.0.1/Makefile create mode 100644 linux/atlassian/jira/6/6.0.1/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.0.1/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.0.2/.env create mode 100644 linux/atlassian/jira/6/6.0.2/Dockerfile create mode 100644 linux/atlassian/jira/6/6.0.2/Makefile create mode 100644 linux/atlassian/jira/6/6.0.2/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.0.2/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.0.3/.env create mode 100644 linux/atlassian/jira/6/6.0.3/Dockerfile create mode 100644 linux/atlassian/jira/6/6.0.3/Makefile create mode 100644 linux/atlassian/jira/6/6.0.3/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.0.3/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.0.4/.env create mode 100644 linux/atlassian/jira/6/6.0.4/Dockerfile create mode 100644 linux/atlassian/jira/6/6.0.4/Makefile create mode 100644 linux/atlassian/jira/6/6.0.4/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.0.4/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.0.5/.env create mode 100644 linux/atlassian/jira/6/6.0.5/Dockerfile create mode 100644 linux/atlassian/jira/6/6.0.5/Makefile create mode 100644 linux/atlassian/jira/6/6.0.5/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.0.5/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.0.6/.env create mode 100644 linux/atlassian/jira/6/6.0.6/Dockerfile create mode 100644 linux/atlassian/jira/6/6.0.6/Makefile create mode 100644 linux/atlassian/jira/6/6.0.6/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.0.6/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.0.7/.env create mode 100644 linux/atlassian/jira/6/6.0.7/Dockerfile create mode 100644 linux/atlassian/jira/6/6.0.7/Makefile create mode 100644 linux/atlassian/jira/6/6.0.7/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.0.7/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.0.8/.env create mode 100644 linux/atlassian/jira/6/6.0.8/Dockerfile create mode 100644 linux/atlassian/jira/6/6.0.8/Makefile create mode 100644 linux/atlassian/jira/6/6.0.8/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.0.8/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.0/.env create mode 100644 linux/atlassian/jira/6/6.0/Dockerfile create mode 100644 linux/atlassian/jira/6/6.0/Makefile create mode 100644 linux/atlassian/jira/6/6.0/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.0/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1.1/.env create mode 100644 linux/atlassian/jira/6/6.1.1/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1.1/Makefile create mode 100644 linux/atlassian/jira/6/6.1.1/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1.1/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1.2/.env create mode 100644 linux/atlassian/jira/6/6.1.2/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1.2/Makefile create mode 100644 linux/atlassian/jira/6/6.1.2/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1.2/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1.3/.env create mode 100644 linux/atlassian/jira/6/6.1.3/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1.3/Makefile create mode 100644 linux/atlassian/jira/6/6.1.3/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1.3/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1.4/.env create mode 100644 linux/atlassian/jira/6/6.1.4/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1.4/Makefile create mode 100644 linux/atlassian/jira/6/6.1.4/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1.4/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1.5/.env create mode 100644 linux/atlassian/jira/6/6.1.5/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1.5/Makefile create mode 100644 linux/atlassian/jira/6/6.1.5/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1.5/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1.6/.env create mode 100644 linux/atlassian/jira/6/6.1.6/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1.6/Makefile create mode 100644 linux/atlassian/jira/6/6.1.6/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1.6/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1.7/.env create mode 100644 linux/atlassian/jira/6/6.1.7/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1.7/Makefile create mode 100644 linux/atlassian/jira/6/6.1.7/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1.7/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1.8/.env create mode 100644 linux/atlassian/jira/6/6.1.8/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1.8/Makefile create mode 100644 linux/atlassian/jira/6/6.1.8/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1.8/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1.9/.env create mode 100644 linux/atlassian/jira/6/6.1.9/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1.9/Makefile create mode 100644 linux/atlassian/jira/6/6.1.9/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1.9/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.1/.env create mode 100644 linux/atlassian/jira/6/6.1/Dockerfile create mode 100644 linux/atlassian/jira/6/6.1/Makefile create mode 100644 linux/atlassian/jira/6/6.1/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.1/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.2.1/.env create mode 100644 linux/atlassian/jira/6/6.2.1/Dockerfile create mode 100644 linux/atlassian/jira/6/6.2.1/Makefile create mode 100644 linux/atlassian/jira/6/6.2.1/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.2.1/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.2.2/.env create mode 100644 linux/atlassian/jira/6/6.2.2/Dockerfile create mode 100644 linux/atlassian/jira/6/6.2.2/Makefile create mode 100644 linux/atlassian/jira/6/6.2.2/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.2.2/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.2.3/.env create mode 100644 linux/atlassian/jira/6/6.2.3/Dockerfile create mode 100644 linux/atlassian/jira/6/6.2.3/Makefile create mode 100644 linux/atlassian/jira/6/6.2.3/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.2.3/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.2.4/.env create mode 100644 linux/atlassian/jira/6/6.2.4/Dockerfile create mode 100644 linux/atlassian/jira/6/6.2.4/Makefile create mode 100644 linux/atlassian/jira/6/6.2.4/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.2.4/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.2.5/.env create mode 100644 linux/atlassian/jira/6/6.2.5/Dockerfile create mode 100644 linux/atlassian/jira/6/6.2.5/Makefile create mode 100644 linux/atlassian/jira/6/6.2.5/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.2.5/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.2.6/.env create mode 100644 linux/atlassian/jira/6/6.2.6/Dockerfile create mode 100644 linux/atlassian/jira/6/6.2.6/Makefile create mode 100644 linux/atlassian/jira/6/6.2.6/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.2.6/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.2.7/.env create mode 100644 linux/atlassian/jira/6/6.2.7/Dockerfile create mode 100644 linux/atlassian/jira/6/6.2.7/Makefile create mode 100644 linux/atlassian/jira/6/6.2.7/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.2.7/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.2/.env create mode 100644 linux/atlassian/jira/6/6.2/Dockerfile create mode 100644 linux/atlassian/jira/6/6.2/Makefile create mode 100644 linux/atlassian/jira/6/6.2/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.2/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.1/.env create mode 100644 linux/atlassian/jira/6/6.3.1/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.1/Makefile create mode 100644 linux/atlassian/jira/6/6.3.1/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.1/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.10/.env create mode 100644 linux/atlassian/jira/6/6.3.10/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.10/Makefile create mode 100644 linux/atlassian/jira/6/6.3.10/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.10/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.11/.env create mode 100644 linux/atlassian/jira/6/6.3.11/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.11/Makefile create mode 100644 linux/atlassian/jira/6/6.3.11/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.11/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.12/.env create mode 100644 linux/atlassian/jira/6/6.3.12/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.12/Makefile create mode 100644 linux/atlassian/jira/6/6.3.12/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.12/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.13/.env create mode 100644 linux/atlassian/jira/6/6.3.13/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.13/Makefile create mode 100644 linux/atlassian/jira/6/6.3.13/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.13/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.14/.env create mode 100644 linux/atlassian/jira/6/6.3.14/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.14/Makefile create mode 100644 linux/atlassian/jira/6/6.3.14/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.14/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.15/.env create mode 100644 linux/atlassian/jira/6/6.3.15/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.3/.env create mode 100644 linux/atlassian/jira/6/6.3.3/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.3/Makefile create mode 100644 linux/atlassian/jira/6/6.3.3/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.3/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.4/.env create mode 100644 linux/atlassian/jira/6/6.3.4/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.4/Makefile create mode 100644 linux/atlassian/jira/6/6.3.4/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.4/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.5/.env create mode 100644 linux/atlassian/jira/6/6.3.5/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.5/Makefile create mode 100644 linux/atlassian/jira/6/6.3.5/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.5/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.6/.env create mode 100644 linux/atlassian/jira/6/6.3.6/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.6/Makefile create mode 100644 linux/atlassian/jira/6/6.3.6/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.6/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.7/.env create mode 100644 linux/atlassian/jira/6/6.3.7/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.7/Makefile create mode 100644 linux/atlassian/jira/6/6.3.7/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.7/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.8/.env create mode 100644 linux/atlassian/jira/6/6.3.8/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.8/Makefile create mode 100644 linux/atlassian/jira/6/6.3.8/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.8/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3.9/.env create mode 100644 linux/atlassian/jira/6/6.3.9/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3.9/Makefile create mode 100644 linux/atlassian/jira/6/6.3.9/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3.9/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.3/.env create mode 100644 linux/atlassian/jira/6/6.3/Dockerfile create mode 100644 linux/atlassian/jira/6/6.3/Makefile create mode 100644 linux/atlassian/jira/6/6.3/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.3/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.1/.env create mode 100644 linux/atlassian/jira/6/6.4.1/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.1/Makefile create mode 100644 linux/atlassian/jira/6/6.4.1/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.1/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.10/.env create mode 100644 linux/atlassian/jira/6/6.4.10/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.10/Makefile create mode 100644 linux/atlassian/jira/6/6.4.10/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.10/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.11/.env create mode 100644 linux/atlassian/jira/6/6.4.11/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.11/Makefile create mode 100644 linux/atlassian/jira/6/6.4.11/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.11/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.12/.env create mode 100644 linux/atlassian/jira/6/6.4.12/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.12/Makefile create mode 100644 linux/atlassian/jira/6/6.4.12/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.12/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.13/.env create mode 100644 linux/atlassian/jira/6/6.4.13/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.13/Makefile create mode 100644 linux/atlassian/jira/6/6.4.13/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.13/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.14/.env create mode 100644 linux/atlassian/jira/6/6.4.14/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.2/.env create mode 100644 linux/atlassian/jira/6/6.4.2/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.2/Makefile create mode 100644 linux/atlassian/jira/6/6.4.2/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.2/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.3/.env create mode 100644 linux/atlassian/jira/6/6.4.3/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.3/Makefile create mode 100644 linux/atlassian/jira/6/6.4.3/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.3/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.4/.env create mode 100644 linux/atlassian/jira/6/6.4.4/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.4/Makefile create mode 100644 linux/atlassian/jira/6/6.4.4/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.4/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.5/.env create mode 100644 linux/atlassian/jira/6/6.4.5/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.5/Makefile create mode 100644 linux/atlassian/jira/6/6.4.5/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.5/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.6/.env create mode 100644 linux/atlassian/jira/6/6.4.6/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.6/Makefile create mode 100644 linux/atlassian/jira/6/6.4.6/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.6/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.7/.env create mode 100644 linux/atlassian/jira/6/6.4.7/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.7/Makefile create mode 100644 linux/atlassian/jira/6/6.4.7/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.7/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.8/.env create mode 100644 linux/atlassian/jira/6/6.4.8/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.8/Makefile create mode 100644 linux/atlassian/jira/6/6.4.8/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.8/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4.9/.env create mode 100644 linux/atlassian/jira/6/6.4.9/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4.9/Makefile create mode 100644 linux/atlassian/jira/6/6.4.9/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4.9/entrypoint.sh create mode 100644 linux/atlassian/jira/6/6.4/.env create mode 100644 linux/atlassian/jira/6/6.4/Dockerfile create mode 100644 linux/atlassian/jira/6/6.4/Makefile create mode 100644 linux/atlassian/jira/6/6.4/docker-compose.yml create mode 100644 linux/atlassian/jira/6/6.4/entrypoint.sh create mode 100644 linux/atlassian/jira/7/7.0.0/.env create mode 100644 linux/atlassian/jira/7/7.0.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.0.10/.env create mode 100644 linux/atlassian/jira/7/7.0.10/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.0.11/.env create mode 100644 linux/atlassian/jira/7/7.0.11/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.0.2/.env create mode 100644 linux/atlassian/jira/7/7.0.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.0.4/.env create mode 100644 linux/atlassian/jira/7/7.0.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.0.5/.env create mode 100644 linux/atlassian/jira/7/7.0.5/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.1.0/.env create mode 100644 linux/atlassian/jira/7/7.1.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.1.1/.env create mode 100644 linux/atlassian/jira/7/7.1.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.1.10/.env create mode 100644 linux/atlassian/jira/7/7.1.10/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.1.2/.env create mode 100644 linux/atlassian/jira/7/7.1.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.1.4/.env create mode 100644 linux/atlassian/jira/7/7.1.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.1.6/.env create mode 100644 linux/atlassian/jira/7/7.1.6/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.1.7/.env create mode 100644 linux/atlassian/jira/7/7.1.7/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.1.8/.env create mode 100644 linux/atlassian/jira/7/7.1.8/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.1.9/.env create mode 100644 linux/atlassian/jira/7/7.1.9/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.10.0/.env create mode 100644 linux/atlassian/jira/7/7.10.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.10.1/.env create mode 100644 linux/atlassian/jira/7/7.10.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.10.2/.env create mode 100644 linux/atlassian/jira/7/7.10.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.11.0/.env create mode 100644 linux/atlassian/jira/7/7.11.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.11.1/.env create mode 100644 linux/atlassian/jira/7/7.11.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.11.2/.env create mode 100644 linux/atlassian/jira/7/7.11.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.12.0/.env create mode 100644 linux/atlassian/jira/7/7.12.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.12.1/.env create mode 100644 linux/atlassian/jira/7/7.12.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.12.3/.env create mode 100644 linux/atlassian/jira/7/7.12.3/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.0/.env create mode 100644 linux/atlassian/jira/7/7.13.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.1/.env create mode 100644 linux/atlassian/jira/7/7.13.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.11/.env create mode 100644 linux/atlassian/jira/7/7.13.11/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.12/.env create mode 100644 linux/atlassian/jira/7/7.13.12/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.13/.env create mode 100644 linux/atlassian/jira/7/7.13.13/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.14/.env create mode 100644 linux/atlassian/jira/7/7.13.14/Dockerfile create mode 100644 linux/atlassian/jira/7/7.13.14/Makefile create mode 100644 linux/atlassian/jira/7/7.13.14/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.14/entrypoint.sh create mode 100644 linux/atlassian/jira/7/7.13.15/.env create mode 100644 linux/atlassian/jira/7/7.13.15/Dockerfile create mode 100644 linux/atlassian/jira/7/7.13.15/Makefile create mode 100644 linux/atlassian/jira/7/7.13.15/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.15/entrypoint.sh create mode 100644 linux/atlassian/jira/7/7.13.16/.env create mode 100644 linux/atlassian/jira/7/7.13.16/Dockerfile create mode 100644 linux/atlassian/jira/7/7.13.16/Makefile create mode 100644 linux/atlassian/jira/7/7.13.16/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.16/entrypoint.sh create mode 100644 linux/atlassian/jira/7/7.13.17/.env create mode 100644 linux/atlassian/jira/7/7.13.17/Dockerfile create mode 100644 linux/atlassian/jira/7/7.13.17/Makefile create mode 100644 linux/atlassian/jira/7/7.13.17/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.17/entrypoint.sh create mode 100644 linux/atlassian/jira/7/7.13.18/.env create mode 100644 linux/atlassian/jira/7/7.13.18/Dockerfile create mode 100644 linux/atlassian/jira/7/7.13.18/Makefile create mode 100644 linux/atlassian/jira/7/7.13.18/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.18/entrypoint.sh create mode 100644 linux/atlassian/jira/7/7.13.2/.env create mode 100644 linux/atlassian/jira/7/7.13.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.3/.env create mode 100644 linux/atlassian/jira/7/7.13.3/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.4/.env create mode 100644 linux/atlassian/jira/7/7.13.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.5/.env create mode 100644 linux/atlassian/jira/7/7.13.5/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.6/.env create mode 100644 linux/atlassian/jira/7/7.13.6/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.8/.env create mode 100644 linux/atlassian/jira/7/7.13.8/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.13.9/.env create mode 100644 linux/atlassian/jira/7/7.13.9/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.0/.env create mode 100644 linux/atlassian/jira/7/7.2.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.1/.env create mode 100644 linux/atlassian/jira/7/7.2.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.10/.env create mode 100644 linux/atlassian/jira/7/7.2.10/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.11/.env create mode 100644 linux/atlassian/jira/7/7.2.11/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.12/.env create mode 100644 linux/atlassian/jira/7/7.2.12/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.13/.env create mode 100644 linux/atlassian/jira/7/7.2.13/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.14/.env create mode 100644 linux/atlassian/jira/7/7.2.14/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.15/.env create mode 100644 linux/atlassian/jira/7/7.2.15/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.2/.env create mode 100644 linux/atlassian/jira/7/7.2.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.3/.env create mode 100644 linux/atlassian/jira/7/7.2.3/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.4/.env create mode 100644 linux/atlassian/jira/7/7.2.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.6/.env create mode 100644 linux/atlassian/jira/7/7.2.6/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.7/.env create mode 100644 linux/atlassian/jira/7/7.2.7/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.8/.env create mode 100644 linux/atlassian/jira/7/7.2.8/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.2.9/.env create mode 100644 linux/atlassian/jira/7/7.2.9/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.0/.env create mode 100644 linux/atlassian/jira/7/7.3.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.1/.env create mode 100644 linux/atlassian/jira/7/7.3.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.2/.env create mode 100644 linux/atlassian/jira/7/7.3.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.3/.env create mode 100644 linux/atlassian/jira/7/7.3.3/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.4/.env create mode 100644 linux/atlassian/jira/7/7.3.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.5/.env create mode 100644 linux/atlassian/jira/7/7.3.5/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.6/.env create mode 100644 linux/atlassian/jira/7/7.3.6/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.7/.env create mode 100644 linux/atlassian/jira/7/7.3.7/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.8/.env create mode 100644 linux/atlassian/jira/7/7.3.8/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.3.9/.env create mode 100644 linux/atlassian/jira/7/7.3.9/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.4.0/.env create mode 100644 linux/atlassian/jira/7/7.4.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.4.1/.env create mode 100644 linux/atlassian/jira/7/7.4.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.4.2/.env create mode 100644 linux/atlassian/jira/7/7.4.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.4.3/.env create mode 100644 linux/atlassian/jira/7/7.4.3/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.4.4/.env create mode 100644 linux/atlassian/jira/7/7.4.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.4.5/.env create mode 100644 linux/atlassian/jira/7/7.4.5/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.4.6/.env create mode 100644 linux/atlassian/jira/7/7.4.6/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.5.0/.env create mode 100644 linux/atlassian/jira/7/7.5.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.5.1/.env create mode 100644 linux/atlassian/jira/7/7.5.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.5.2/.env create mode 100644 linux/atlassian/jira/7/7.5.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.5.3/.env create mode 100644 linux/atlassian/jira/7/7.5.3/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.5.4/.env create mode 100644 linux/atlassian/jira/7/7.5.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.0/.env create mode 100644 linux/atlassian/jira/7/7.6.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.1/.env create mode 100644 linux/atlassian/jira/7/7.6.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.10/.env create mode 100644 linux/atlassian/jira/7/7.6.10/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.11/.env create mode 100644 linux/atlassian/jira/7/7.6.11/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.12/.env create mode 100644 linux/atlassian/jira/7/7.6.12/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.13/.env create mode 100644 linux/atlassian/jira/7/7.6.13/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.14/.env create mode 100644 linux/atlassian/jira/7/7.6.14/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.15/.env create mode 100644 linux/atlassian/jira/7/7.6.15/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.16/.env create mode 100644 linux/atlassian/jira/7/7.6.16/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.17/.env create mode 100644 linux/atlassian/jira/7/7.6.17/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.2/.env create mode 100644 linux/atlassian/jira/7/7.6.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.3/.env create mode 100644 linux/atlassian/jira/7/7.6.3/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.4/.env create mode 100644 linux/atlassian/jira/7/7.6.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.6/.env create mode 100644 linux/atlassian/jira/7/7.6.6/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.7/.env create mode 100644 linux/atlassian/jira/7/7.6.7/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.8/.env create mode 100644 linux/atlassian/jira/7/7.6.8/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.6.9/.env create mode 100644 linux/atlassian/jira/7/7.6.9/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.7.0/.env create mode 100644 linux/atlassian/jira/7/7.7.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.7.1/.env create mode 100644 linux/atlassian/jira/7/7.7.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.7.2/.env create mode 100644 linux/atlassian/jira/7/7.7.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.7.4/.env create mode 100644 linux/atlassian/jira/7/7.7.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.8.0/.env create mode 100644 linux/atlassian/jira/7/7.8.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.8.1/.env create mode 100644 linux/atlassian/jira/7/7.8.1/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.8.2/.env create mode 100644 linux/atlassian/jira/7/7.8.2/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.8.4/.env create mode 100644 linux/atlassian/jira/7/7.8.4/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.9.0/.env create mode 100644 linux/atlassian/jira/7/7.9.0/docker-compose.yml create mode 100644 linux/atlassian/jira/7/7.9.2/.env create mode 100644 linux/atlassian/jira/7/7.9.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.0.0/.env create mode 100644 linux/atlassian/jira/8/8.0.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.0.2/.env create mode 100644 linux/atlassian/jira/8/8.0.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.0.3/.env create mode 100644 linux/atlassian/jira/8/8.0.3/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.1.0/.env create mode 100644 linux/atlassian/jira/8/8.1.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.1.1/.env create mode 100644 linux/atlassian/jira/8/8.1.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.1.2/.env create mode 100644 linux/atlassian/jira/8/8.1.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.1.3/.env create mode 100644 linux/atlassian/jira/8/8.1.3/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.10.0/.env create mode 100644 linux/atlassian/jira/8/8.10.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.10.1/.env create mode 100644 linux/atlassian/jira/8/8.10.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.11.0/.env create mode 100644 linux/atlassian/jira/8/8.11.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.11.1/.env create mode 100644 linux/atlassian/jira/8/8.11.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.12.0/.env create mode 100644 linux/atlassian/jira/8/8.12.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.12.1/.env create mode 100644 linux/atlassian/jira/8/8.12.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.12.2/.env create mode 100644 linux/atlassian/jira/8/8.12.2/Dockerfile create mode 100644 linux/atlassian/jira/8/8.12.2/Makefile create mode 100644 linux/atlassian/jira/8/8.12.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.12.2/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.12.3/.env create mode 100644 linux/atlassian/jira/8/8.12.3/Dockerfile create mode 100644 linux/atlassian/jira/8/8.12.3/Makefile create mode 100644 linux/atlassian/jira/8/8.12.3/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.12.3/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.13.0/.env create mode 100644 linux/atlassian/jira/8/8.13.0/Dockerfile create mode 100644 linux/atlassian/jira/8/8.13.0/Makefile create mode 100644 linux/atlassian/jira/8/8.13.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.13.0/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.13.1/.env create mode 100644 linux/atlassian/jira/8/8.13.1/Dockerfile create mode 100644 linux/atlassian/jira/8/8.13.1/Makefile create mode 100644 linux/atlassian/jira/8/8.13.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.13.1/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.13.2/.env create mode 100644 linux/atlassian/jira/8/8.13.2/Dockerfile create mode 100644 linux/atlassian/jira/8/8.13.2/Makefile create mode 100644 linux/atlassian/jira/8/8.13.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.13.2/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.13.3/.env create mode 100644 linux/atlassian/jira/8/8.13.3/Dockerfile create mode 100644 linux/atlassian/jira/8/8.13.3/Makefile create mode 100644 linux/atlassian/jira/8/8.13.3/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.13.3/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.13.4/.env create mode 100644 linux/atlassian/jira/8/8.13.4/Dockerfile create mode 100644 linux/atlassian/jira/8/8.13.4/Makefile create mode 100644 linux/atlassian/jira/8/8.13.4/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.13.4/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.13.5/.env create mode 100644 linux/atlassian/jira/8/8.13.5/Dockerfile create mode 100644 linux/atlassian/jira/8/8.13.5/Makefile create mode 100644 linux/atlassian/jira/8/8.13.5/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.13.5/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.13.6/.env create mode 100644 linux/atlassian/jira/8/8.13.6/Dockerfile create mode 100644 linux/atlassian/jira/8/8.13.6/Makefile create mode 100644 linux/atlassian/jira/8/8.13.6/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.13.6/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.13.7/.env create mode 100644 linux/atlassian/jira/8/8.13.7/Dockerfile create mode 100644 linux/atlassian/jira/8/8.13.7/Makefile create mode 100644 linux/atlassian/jira/8/8.13.7/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.13.7/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.14.0/.env create mode 100644 linux/atlassian/jira/8/8.14.0/Dockerfile create mode 100644 linux/atlassian/jira/8/8.14.0/Makefile create mode 100644 linux/atlassian/jira/8/8.14.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.14.0/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.14.1/.env create mode 100644 linux/atlassian/jira/8/8.14.1/Dockerfile create mode 100644 linux/atlassian/jira/8/8.14.1/Makefile create mode 100644 linux/atlassian/jira/8/8.14.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.14.1/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.15.0/.env create mode 100644 linux/atlassian/jira/8/8.15.0/Dockerfile create mode 100644 linux/atlassian/jira/8/8.15.0/Makefile create mode 100644 linux/atlassian/jira/8/8.15.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.15.0/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.15.1/.env create mode 100644 linux/atlassian/jira/8/8.15.1/Dockerfile create mode 100644 linux/atlassian/jira/8/8.15.1/Makefile create mode 100644 linux/atlassian/jira/8/8.15.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.15.1/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.16.0/.env create mode 100644 linux/atlassian/jira/8/8.16.0/Dockerfile create mode 100644 linux/atlassian/jira/8/8.16.0/Makefile create mode 100644 linux/atlassian/jira/8/8.16.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.16.0/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.16.1/.env create mode 100644 linux/atlassian/jira/8/8.16.1/Dockerfile create mode 100644 linux/atlassian/jira/8/8.16.1/Makefile create mode 100644 linux/atlassian/jira/8/8.16.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.16.1/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.17.0/.env create mode 100644 linux/atlassian/jira/8/8.17.0/Dockerfile create mode 100644 linux/atlassian/jira/8/8.17.0/Makefile create mode 100644 linux/atlassian/jira/8/8.17.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.17.0/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.2.0/.env create mode 100644 linux/atlassian/jira/8/8.2.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.2.1/.env create mode 100644 linux/atlassian/jira/8/8.2.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.2.2/.env create mode 100644 linux/atlassian/jira/8/8.2.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.2.3/.env create mode 100644 linux/atlassian/jira/8/8.2.3/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.2.4/.env create mode 100644 linux/atlassian/jira/8/8.2.4/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.2.5/.env create mode 100644 linux/atlassian/jira/8/8.2.5/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.2.6/.env create mode 100644 linux/atlassian/jira/8/8.2.6/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.3.0/.env create mode 100644 linux/atlassian/jira/8/8.3.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.3.1/.env create mode 100644 linux/atlassian/jira/8/8.3.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.3.2/.env create mode 100644 linux/atlassian/jira/8/8.3.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.3.3/.env create mode 100644 linux/atlassian/jira/8/8.3.3/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.3.4/.env create mode 100644 linux/atlassian/jira/8/8.3.4/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.3.5/.env create mode 100644 linux/atlassian/jira/8/8.3.5/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.4.0/.env create mode 100644 linux/atlassian/jira/8/8.4.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.4.1/.env create mode 100644 linux/atlassian/jira/8/8.4.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.4.2/.env create mode 100644 linux/atlassian/jira/8/8.4.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.4.3/.env create mode 100644 linux/atlassian/jira/8/8.4.3/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.0/.env create mode 100644 linux/atlassian/jira/8/8.5.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.1/.env create mode 100644 linux/atlassian/jira/8/8.5.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.10/.env create mode 100644 linux/atlassian/jira/8/8.5.10/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.10/Makefile create mode 100644 linux/atlassian/jira/8/8.5.10/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.10/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.11/.env create mode 100644 linux/atlassian/jira/8/8.5.11/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.11/Makefile create mode 100644 linux/atlassian/jira/8/8.5.11/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.11/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.12/.env create mode 100644 linux/atlassian/jira/8/8.5.12/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.12/Makefile create mode 100644 linux/atlassian/jira/8/8.5.12/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.12/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.13/.env create mode 100644 linux/atlassian/jira/8/8.5.13/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.13/Makefile create mode 100644 linux/atlassian/jira/8/8.5.13/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.13/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.14/.env create mode 100644 linux/atlassian/jira/8/8.5.14/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.14/Makefile create mode 100644 linux/atlassian/jira/8/8.5.14/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.14/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.15/.env create mode 100644 linux/atlassian/jira/8/8.5.15/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.15/Makefile create mode 100644 linux/atlassian/jira/8/8.5.15/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.15/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.2/.env create mode 100644 linux/atlassian/jira/8/8.5.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.3/.env create mode 100644 linux/atlassian/jira/8/8.5.3/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.4/.env create mode 100644 linux/atlassian/jira/8/8.5.4/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.4/Makefile create mode 100644 linux/atlassian/jira/8/8.5.4/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.4/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.5/.env create mode 100644 linux/atlassian/jira/8/8.5.5/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.5/Makefile create mode 100644 linux/atlassian/jira/8/8.5.5/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.5/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.6/.env create mode 100644 linux/atlassian/jira/8/8.5.6/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.6/Makefile create mode 100644 linux/atlassian/jira/8/8.5.6/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.6/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.7/.env create mode 100644 linux/atlassian/jira/8/8.5.7/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.7/Makefile create mode 100644 linux/atlassian/jira/8/8.5.7/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.7/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.8/.env create mode 100644 linux/atlassian/jira/8/8.5.8/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.8/Makefile create mode 100644 linux/atlassian/jira/8/8.5.8/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.8/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.9/.env create mode 100644 linux/atlassian/jira/8/8.5.9/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.9/Makefile create mode 100644 linux/atlassian/jira/8/8.5.9/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.9/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.6.0/.env create mode 100644 linux/atlassian/jira/8/8.6.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.6.1/.env create mode 100644 linux/atlassian/jira/8/8.6.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.7.0/.env create mode 100644 linux/atlassian/jira/8/8.7.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.7.1/.env create mode 100644 linux/atlassian/jira/8/8.7.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.8.0/.env create mode 100644 linux/atlassian/jira/8/8.8.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.8.1/.env create mode 100644 linux/atlassian/jira/8/8.8.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.9.0/.env create mode 100644 linux/atlassian/jira/8/8.9.0/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.9.1/.env create mode 100644 linux/atlassian/jira/8/8.9.1/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0.1/.env b/linux/atlassian/jira/6/6.0.1/.env new file mode 100644 index 000000000..ce7d3fe65 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.0.1/Dockerfile b/linux/atlassian/jira/6/6.0.1/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.0.1/Makefile b/linux/atlassian/jira/6/6.0.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.0.1/docker-compose.yml b/linux/atlassian/jira/6/6.0.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.0.1/entrypoint.sh b/linux/atlassian/jira/6/6.0.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.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/atlassian/jira/6/6.0.2/.env b/linux/atlassian/jira/6/6.0.2/.env new file mode 100644 index 000000000..ecb03a7b5 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.0.2/Dockerfile b/linux/atlassian/jira/6/6.0.2/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.2/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.0.2/Makefile b/linux/atlassian/jira/6/6.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.0.2/docker-compose.yml b/linux/atlassian/jira/6/6.0.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.0.2/entrypoint.sh b/linux/atlassian/jira/6/6.0.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.0.3/.env b/linux/atlassian/jira/6/6.0.3/.env new file mode 100644 index 000000000..cfe00f7d5 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.0.3/Dockerfile b/linux/atlassian/jira/6/6.0.3/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.3/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.0.3/Makefile b/linux/atlassian/jira/6/6.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.0.3/docker-compose.yml b/linux/atlassian/jira/6/6.0.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.0.3/entrypoint.sh b/linux/atlassian/jira/6/6.0.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.0.4/.env b/linux/atlassian/jira/6/6.0.4/.env new file mode 100644 index 000000000..f49441bde --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.0.4/Dockerfile b/linux/atlassian/jira/6/6.0.4/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.4/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.0.4/Makefile b/linux/atlassian/jira/6/6.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.0.4/docker-compose.yml b/linux/atlassian/jira/6/6.0.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.0.4/entrypoint.sh b/linux/atlassian/jira/6/6.0.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.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/atlassian/jira/6/6.0.5/.env b/linux/atlassian/jira/6/6.0.5/.env new file mode 100644 index 000000000..e124d1ec8 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.0.5/Dockerfile b/linux/atlassian/jira/6/6.0.5/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.5/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.0.5/Makefile b/linux/atlassian/jira/6/6.0.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.0.5/docker-compose.yml b/linux/atlassian/jira/6/6.0.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.0.5/entrypoint.sh b/linux/atlassian/jira/6/6.0.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.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/atlassian/jira/6/6.0.6/.env b/linux/atlassian/jira/6/6.0.6/.env new file mode 100644 index 000000000..cd09ad26a --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.0.6/Dockerfile b/linux/atlassian/jira/6/6.0.6/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.6/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.0.6/Makefile b/linux/atlassian/jira/6/6.0.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.0.6/docker-compose.yml b/linux/atlassian/jira/6/6.0.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.0.6/entrypoint.sh b/linux/atlassian/jira/6/6.0.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.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/atlassian/jira/6/6.0.7/.env b/linux/atlassian/jira/6/6.0.7/.env new file mode 100644 index 000000000..96b403562 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.0.7/Dockerfile b/linux/atlassian/jira/6/6.0.7/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.7/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.0.7/Makefile b/linux/atlassian/jira/6/6.0.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.0.7/docker-compose.yml b/linux/atlassian/jira/6/6.0.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.0.7/entrypoint.sh b/linux/atlassian/jira/6/6.0.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.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/atlassian/jira/6/6.0.8/.env b/linux/atlassian/jira/6/6.0.8/.env new file mode 100644 index 000000000..3c7f7a4a9 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.0.8/Dockerfile b/linux/atlassian/jira/6/6.0.8/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.8/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.0.8/Makefile b/linux/atlassian/jira/6/6.0.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.0.8/docker-compose.yml b/linux/atlassian/jira/6/6.0.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.0.8/entrypoint.sh b/linux/atlassian/jira/6/6.0.8/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.0.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/atlassian/jira/6/6.0/.env b/linux/atlassian/jira/6/6.0/.env new file mode 100644 index 000000000..f46c56fbe --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.0/Dockerfile b/linux/atlassian/jira/6/6.0/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.0/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.0/Makefile b/linux/atlassian/jira/6/6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/6/6.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/6/6.0/docker-compose.yml b/linux/atlassian/jira/6/6.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.0/entrypoint.sh b/linux/atlassian/jira/6/6.0/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/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/atlassian/jira/6/6.1.1/.env b/linux/atlassian/jira/6/6.1.1/.env new file mode 100644 index 000000000..a12a8f72e --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1.1/Dockerfile b/linux/atlassian/jira/6/6.1.1/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1.1/Makefile b/linux/atlassian/jira/6/6.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.1.1/docker-compose.yml b/linux/atlassian/jira/6/6.1.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1.1/entrypoint.sh b/linux/atlassian/jira/6/6.1.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.1.2/.env b/linux/atlassian/jira/6/6.1.2/.env new file mode 100644 index 000000000..f9320266d --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1.2/Dockerfile b/linux/atlassian/jira/6/6.1.2/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.2/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1.2/Makefile b/linux/atlassian/jira/6/6.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.1.2/docker-compose.yml b/linux/atlassian/jira/6/6.1.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1.2/entrypoint.sh b/linux/atlassian/jira/6/6.1.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.1.3/.env b/linux/atlassian/jira/6/6.1.3/.env new file mode 100644 index 000000000..81e1dff94 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1.3/Dockerfile b/linux/atlassian/jira/6/6.1.3/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.3/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1.3/Makefile b/linux/atlassian/jira/6/6.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.1.3/docker-compose.yml b/linux/atlassian/jira/6/6.1.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1.3/entrypoint.sh b/linux/atlassian/jira/6/6.1.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.1.4/.env b/linux/atlassian/jira/6/6.1.4/.env new file mode 100644 index 000000000..6d11eacc2 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1.4/Dockerfile b/linux/atlassian/jira/6/6.1.4/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.4/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1.4/Makefile b/linux/atlassian/jira/6/6.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.1.4/docker-compose.yml b/linux/atlassian/jira/6/6.1.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1.4/entrypoint.sh b/linux/atlassian/jira/6/6.1.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.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/atlassian/jira/6/6.1.5/.env b/linux/atlassian/jira/6/6.1.5/.env new file mode 100644 index 000000000..ed36ad2be --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1.5/Dockerfile b/linux/atlassian/jira/6/6.1.5/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.5/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1.5/Makefile b/linux/atlassian/jira/6/6.1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.1.5/docker-compose.yml b/linux/atlassian/jira/6/6.1.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1.5/entrypoint.sh b/linux/atlassian/jira/6/6.1.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.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/atlassian/jira/6/6.1.6/.env b/linux/atlassian/jira/6/6.1.6/.env new file mode 100644 index 000000000..19df26917 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1.6/Dockerfile b/linux/atlassian/jira/6/6.1.6/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.6/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1.6/Makefile b/linux/atlassian/jira/6/6.1.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.1.6/docker-compose.yml b/linux/atlassian/jira/6/6.1.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1.6/entrypoint.sh b/linux/atlassian/jira/6/6.1.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.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/atlassian/jira/6/6.1.7/.env b/linux/atlassian/jira/6/6.1.7/.env new file mode 100644 index 000000000..5d3af75c2 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1.7/Dockerfile b/linux/atlassian/jira/6/6.1.7/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.7/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1.7/Makefile b/linux/atlassian/jira/6/6.1.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.1.7/docker-compose.yml b/linux/atlassian/jira/6/6.1.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1.7/entrypoint.sh b/linux/atlassian/jira/6/6.1.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.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/atlassian/jira/6/6.1.8/.env b/linux/atlassian/jira/6/6.1.8/.env new file mode 100644 index 000000000..9fd53a51f --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1.8/Dockerfile b/linux/atlassian/jira/6/6.1.8/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.8/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1.8/Makefile b/linux/atlassian/jira/6/6.1.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.1.8/docker-compose.yml b/linux/atlassian/jira/6/6.1.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1.8/entrypoint.sh b/linux/atlassian/jira/6/6.1.8/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.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/atlassian/jira/6/6.1.9/.env b/linux/atlassian/jira/6/6.1.9/.env new file mode 100644 index 000000000..2e02d098e --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1.9/Dockerfile b/linux/atlassian/jira/6/6.1.9/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.9/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1.9/Makefile b/linux/atlassian/jira/6/6.1.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.1.9/docker-compose.yml b/linux/atlassian/jira/6/6.1.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1.9/entrypoint.sh b/linux/atlassian/jira/6/6.1.9/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.1.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/atlassian/jira/6/6.1/.env b/linux/atlassian/jira/6/6.1/.env new file mode 100644 index 000000000..d4c72174e --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.1/Dockerfile b/linux/atlassian/jira/6/6.1/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1/Makefile b/linux/atlassian/jira/6/6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/6/6.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/6/6.1/docker-compose.yml b/linux/atlassian/jira/6/6.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.1/entrypoint.sh b/linux/atlassian/jira/6/6.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/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/atlassian/jira/6/6.2.1/.env b/linux/atlassian/jira/6/6.2.1/.env new file mode 100644 index 000000000..fd2af7de2 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.2.1/Dockerfile b/linux/atlassian/jira/6/6.2.1/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.2.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2.1/Makefile b/linux/atlassian/jira/6/6.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.2.1/docker-compose.yml b/linux/atlassian/jira/6/6.2.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.2.1/entrypoint.sh b/linux/atlassian/jira/6/6.2.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.2.2/.env b/linux/atlassian/jira/6/6.2.2/.env new file mode 100644 index 000000000..eadcc098c --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.2.2/Dockerfile b/linux/atlassian/jira/6/6.2.2/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.2.2/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2.2/Makefile b/linux/atlassian/jira/6/6.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.2.2/docker-compose.yml b/linux/atlassian/jira/6/6.2.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.2.2/entrypoint.sh b/linux/atlassian/jira/6/6.2.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.2.3/.env b/linux/atlassian/jira/6/6.2.3/.env new file mode 100644 index 000000000..5d7ef117e --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.2.3/Dockerfile b/linux/atlassian/jira/6/6.2.3/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.2.3/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2.3/Makefile b/linux/atlassian/jira/6/6.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.2.3/docker-compose.yml b/linux/atlassian/jira/6/6.2.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.2.3/entrypoint.sh b/linux/atlassian/jira/6/6.2.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.2.4/.env b/linux/atlassian/jira/6/6.2.4/.env new file mode 100644 index 000000000..93ded70a6 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.2.4/Dockerfile b/linux/atlassian/jira/6/6.2.4/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.2.4/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2.4/Makefile b/linux/atlassian/jira/6/6.2.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.2.4/docker-compose.yml b/linux/atlassian/jira/6/6.2.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.2.4/entrypoint.sh b/linux/atlassian/jira/6/6.2.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.2.5/.env b/linux/atlassian/jira/6/6.2.5/.env new file mode 100644 index 000000000..4bc32a43e --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.2.5/Dockerfile b/linux/atlassian/jira/6/6.2.5/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.2.5/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2.5/Makefile b/linux/atlassian/jira/6/6.2.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.2.5/docker-compose.yml b/linux/atlassian/jira/6/6.2.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.2.5/entrypoint.sh b/linux/atlassian/jira/6/6.2.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.2.6/.env b/linux/atlassian/jira/6/6.2.6/.env new file mode 100644 index 000000000..0bb4d5cb9 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.2.6/Dockerfile b/linux/atlassian/jira/6/6.2.6/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.2.6/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2.6/Makefile b/linux/atlassian/jira/6/6.2.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.2.6/docker-compose.yml b/linux/atlassian/jira/6/6.2.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.2.6/entrypoint.sh b/linux/atlassian/jira/6/6.2.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.2.7/.env b/linux/atlassian/jira/6/6.2.7/.env new file mode 100644 index 000000000..cce09ff61 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.2.7/Dockerfile b/linux/atlassian/jira/6/6.2.7/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.2.7/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2.7/Makefile b/linux/atlassian/jira/6/6.2.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.2.7/docker-compose.yml b/linux/atlassian/jira/6/6.2.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.2.7/entrypoint.sh b/linux/atlassian/jira/6/6.2.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.2/.env b/linux/atlassian/jira/6/6.2/.env new file mode 100644 index 000000000..72a26be92 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.2/Dockerfile b/linux/atlassian/jira/6/6.2/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.2/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2/Makefile b/linux/atlassian/jira/6/6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/6/6.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/6/6.2/docker-compose.yml b/linux/atlassian/jira/6/6.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.2/entrypoint.sh b/linux/atlassian/jira/6/6.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/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/atlassian/jira/6/6.3.1/.env b/linux/atlassian/jira/6/6.3.1/.env new file mode 100644 index 000000000..cce1312e7 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.1/Dockerfile b/linux/atlassian/jira/6/6.3.1/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1/Makefile b/linux/atlassian/jira/6/6.3.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.1/docker-compose.yml b/linux/atlassian/jira/6/6.3.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.1/entrypoint.sh b/linux/atlassian/jira/6/6.3.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.3.10/.env b/linux/atlassian/jira/6/6.3.10/.env new file mode 100644 index 000000000..72c6b9156 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.10/Dockerfile b/linux/atlassian/jira/6/6.3.10/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.10/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.10/Makefile b/linux/atlassian/jira/6/6.3.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.10/docker-compose.yml b/linux/atlassian/jira/6/6.3.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.10/entrypoint.sh b/linux/atlassian/jira/6/6.3.10/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.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/atlassian/jira/6/6.3.11/.env b/linux/atlassian/jira/6/6.3.11/.env new file mode 100644 index 000000000..8f820ccc7 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.11/Dockerfile b/linux/atlassian/jira/6/6.3.11/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.11/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.11/Makefile b/linux/atlassian/jira/6/6.3.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.11/docker-compose.yml b/linux/atlassian/jira/6/6.3.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.11/entrypoint.sh b/linux/atlassian/jira/6/6.3.11/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.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/atlassian/jira/6/6.3.12/.env b/linux/atlassian/jira/6/6.3.12/.env new file mode 100644 index 000000000..58f0b68a5 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.12/Dockerfile b/linux/atlassian/jira/6/6.3.12/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.12/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.12/Makefile b/linux/atlassian/jira/6/6.3.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.12/docker-compose.yml b/linux/atlassian/jira/6/6.3.12/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.12/entrypoint.sh b/linux/atlassian/jira/6/6.3.12/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.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/atlassian/jira/6/6.3.13/.env b/linux/atlassian/jira/6/6.3.13/.env new file mode 100644 index 000000000..562f587d7 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.13/Dockerfile b/linux/atlassian/jira/6/6.3.13/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.13/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13/Makefile b/linux/atlassian/jira/6/6.3.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.13/docker-compose.yml b/linux/atlassian/jira/6/6.3.13/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.13/entrypoint.sh b/linux/atlassian/jira/6/6.3.13/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.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/atlassian/jira/6/6.3.14/.env b/linux/atlassian/jira/6/6.3.14/.env new file mode 100644 index 000000000..3c1323bae --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.14/Dockerfile b/linux/atlassian/jira/6/6.3.14/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.14/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.14/Makefile b/linux/atlassian/jira/6/6.3.14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.14/docker-compose.yml b/linux/atlassian/jira/6/6.3.14/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.14/entrypoint.sh b/linux/atlassian/jira/6/6.3.14/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.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/atlassian/jira/6/6.3.15/.env b/linux/atlassian/jira/6/6.3.15/.env new file mode 100644 index 000000000..e9c265b6a --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.15/Dockerfile b/linux/atlassian/jira/6/6.3.15/Dockerfile index 5b34ba500..9d7304645 100644 --- a/linux/atlassian/jira/6/6.3.15/Dockerfile +++ b/linux/atlassian/jira/6/6.3.15/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -32,6 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ diff --git a/linux/atlassian/jira/6/6.3.15/Makefile b/linux/atlassian/jira/6/6.3.15/Makefile index 1600cdd9c..82c5a2de6 100644 --- a/linux/atlassian/jira/6/6.3.15/Makefile +++ b/linux/atlassian/jira/6/6.3.15/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:6.3.15 . - docker push epicmorg/jira:6.3.15 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/6/6.3.15/docker-compose.yml b/linux/atlassian/jira/6/6.3.15/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.3/.env b/linux/atlassian/jira/6/6.3.3/.env new file mode 100644 index 000000000..94ec966c6 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.3/Dockerfile b/linux/atlassian/jira/6/6.3.3/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.3/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.3/Makefile b/linux/atlassian/jira/6/6.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.3/docker-compose.yml b/linux/atlassian/jira/6/6.3.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.3/entrypoint.sh b/linux/atlassian/jira/6/6.3.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.3.4/.env b/linux/atlassian/jira/6/6.3.4/.env new file mode 100644 index 000000000..a5498f7f0 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.4/Dockerfile b/linux/atlassian/jira/6/6.3.4/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.4/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.4/Makefile b/linux/atlassian/jira/6/6.3.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.4/docker-compose.yml b/linux/atlassian/jira/6/6.3.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.4/entrypoint.sh b/linux/atlassian/jira/6/6.3.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.3.5/.env b/linux/atlassian/jira/6/6.3.5/.env new file mode 100644 index 000000000..f5d69987e --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.5/Dockerfile b/linux/atlassian/jira/6/6.3.5/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.5/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.5/Makefile b/linux/atlassian/jira/6/6.3.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.5/docker-compose.yml b/linux/atlassian/jira/6/6.3.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.5/entrypoint.sh b/linux/atlassian/jira/6/6.3.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.3.6/.env b/linux/atlassian/jira/6/6.3.6/.env new file mode 100644 index 000000000..6ff089fab --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.6/Dockerfile b/linux/atlassian/jira/6/6.3.6/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.6/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.6/Makefile b/linux/atlassian/jira/6/6.3.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.6/docker-compose.yml b/linux/atlassian/jira/6/6.3.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.6/entrypoint.sh b/linux/atlassian/jira/6/6.3.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.3.7/.env b/linux/atlassian/jira/6/6.3.7/.env new file mode 100644 index 000000000..98ba904b8 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.7/Dockerfile b/linux/atlassian/jira/6/6.3.7/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.7/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.7/Makefile b/linux/atlassian/jira/6/6.3.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.7/docker-compose.yml b/linux/atlassian/jira/6/6.3.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.7/entrypoint.sh b/linux/atlassian/jira/6/6.3.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.3.8/.env b/linux/atlassian/jira/6/6.3.8/.env new file mode 100644 index 000000000..b978a5e7c --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.8/Dockerfile b/linux/atlassian/jira/6/6.3.8/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.8/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.8/Makefile b/linux/atlassian/jira/6/6.3.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.8/docker-compose.yml b/linux/atlassian/jira/6/6.3.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.8/entrypoint.sh b/linux/atlassian/jira/6/6.3.8/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.3.9/.env b/linux/atlassian/jira/6/6.3.9/.env new file mode 100644 index 000000000..ff4feffc4 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3.9/Dockerfile b/linux/atlassian/jira/6/6.3.9/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3.9/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.9/Makefile b/linux/atlassian/jira/6/6.3.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.3.9/docker-compose.yml b/linux/atlassian/jira/6/6.3.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3.9/entrypoint.sh b/linux/atlassian/jira/6/6.3.9/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.3/.env b/linux/atlassian/jira/6/6.3/.env new file mode 100644 index 000000000..eb12a4890 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.3/Dockerfile b/linux/atlassian/jira/6/6.3/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.3/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/Makefile b/linux/atlassian/jira/6/6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/6/6.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/6/6.3/docker-compose.yml b/linux/atlassian/jira/6/6.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.3/entrypoint.sh b/linux/atlassian/jira/6/6.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/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/atlassian/jira/6/6.4.1/.env b/linux/atlassian/jira/6/6.4.1/.env new file mode 100644 index 000000000..1ca180e42 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.1/Dockerfile b/linux/atlassian/jira/6/6.4.1/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.1/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.1/Makefile b/linux/atlassian/jira/6/6.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.1/docker-compose.yml b/linux/atlassian/jira/6/6.4.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.1/entrypoint.sh b/linux/atlassian/jira/6/6.4.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.4.10/.env b/linux/atlassian/jira/6/6.4.10/.env new file mode 100644 index 000000000..9616ebcfe --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.10/Dockerfile b/linux/atlassian/jira/6/6.4.10/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.10/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.10/Makefile b/linux/atlassian/jira/6/6.4.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.10/docker-compose.yml b/linux/atlassian/jira/6/6.4.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.10/entrypoint.sh b/linux/atlassian/jira/6/6.4.10/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.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/atlassian/jira/6/6.4.11/.env b/linux/atlassian/jira/6/6.4.11/.env new file mode 100644 index 000000000..9abac8a6a --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.11/Dockerfile b/linux/atlassian/jira/6/6.4.11/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.11/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.11/Makefile b/linux/atlassian/jira/6/6.4.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.11/docker-compose.yml b/linux/atlassian/jira/6/6.4.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.11/entrypoint.sh b/linux/atlassian/jira/6/6.4.11/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.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/atlassian/jira/6/6.4.12/.env b/linux/atlassian/jira/6/6.4.12/.env new file mode 100644 index 000000000..2f5cda99f --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.12/Dockerfile b/linux/atlassian/jira/6/6.4.12/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.12/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.12/Makefile b/linux/atlassian/jira/6/6.4.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.12/docker-compose.yml b/linux/atlassian/jira/6/6.4.12/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.12/entrypoint.sh b/linux/atlassian/jira/6/6.4.12/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.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/atlassian/jira/6/6.4.13/.env b/linux/atlassian/jira/6/6.4.13/.env new file mode 100644 index 000000000..818179942 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.13/Dockerfile b/linux/atlassian/jira/6/6.4.13/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.13/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13/Makefile b/linux/atlassian/jira/6/6.4.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.13/docker-compose.yml b/linux/atlassian/jira/6/6.4.13/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.13/entrypoint.sh b/linux/atlassian/jira/6/6.4.13/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.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/atlassian/jira/6/6.4.14/.env b/linux/atlassian/jira/6/6.4.14/.env new file mode 100644 index 000000000..796b08d88 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.14/Dockerfile b/linux/atlassian/jira/6/6.4.14/Dockerfile index ccea5ede7..9d7304645 100644 --- a/linux/atlassian/jira/6/6.4.14/Dockerfile +++ b/linux/atlassian/jira/6/6.4.14/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -32,6 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ diff --git a/linux/atlassian/jira/6/6.4.14/Makefile b/linux/atlassian/jira/6/6.4.14/Makefile index 8f1d19b9d..82c5a2de6 100644 --- a/linux/atlassian/jira/6/6.4.14/Makefile +++ b/linux/atlassian/jira/6/6.4.14/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:6.4.14 . - docker push epicmorg/jira:6.4.14 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/6/6.4.14/docker-compose.yml b/linux/atlassian/jira/6/6.4.14/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.2/.env b/linux/atlassian/jira/6/6.4.2/.env new file mode 100644 index 000000000..7685317b0 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.2/Dockerfile b/linux/atlassian/jira/6/6.4.2/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.2/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2/Makefile b/linux/atlassian/jira/6/6.4.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.2/docker-compose.yml b/linux/atlassian/jira/6/6.4.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.2/entrypoint.sh b/linux/atlassian/jira/6/6.4.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.4.3/.env b/linux/atlassian/jira/6/6.4.3/.env new file mode 100644 index 000000000..9f2e2f073 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.3/Dockerfile b/linux/atlassian/jira/6/6.4.3/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.3/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.3/Makefile b/linux/atlassian/jira/6/6.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.3/docker-compose.yml b/linux/atlassian/jira/6/6.4.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.3/entrypoint.sh b/linux/atlassian/jira/6/6.4.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.4.4/.env b/linux/atlassian/jira/6/6.4.4/.env new file mode 100644 index 000000000..fbf48c1e1 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.4/Dockerfile b/linux/atlassian/jira/6/6.4.4/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.4/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.4/Makefile b/linux/atlassian/jira/6/6.4.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.4/docker-compose.yml b/linux/atlassian/jira/6/6.4.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.4/entrypoint.sh b/linux/atlassian/jira/6/6.4.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.4.5/.env b/linux/atlassian/jira/6/6.4.5/.env new file mode 100644 index 000000000..394e1303b --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.5/Dockerfile b/linux/atlassian/jira/6/6.4.5/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.5/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.5/Makefile b/linux/atlassian/jira/6/6.4.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.5/docker-compose.yml b/linux/atlassian/jira/6/6.4.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.5/entrypoint.sh b/linux/atlassian/jira/6/6.4.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.4.6/.env b/linux/atlassian/jira/6/6.4.6/.env new file mode 100644 index 000000000..37b4e29ae --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.6/Dockerfile b/linux/atlassian/jira/6/6.4.6/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.6/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.6/Makefile b/linux/atlassian/jira/6/6.4.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.6/docker-compose.yml b/linux/atlassian/jira/6/6.4.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.6/entrypoint.sh b/linux/atlassian/jira/6/6.4.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.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/atlassian/jira/6/6.4.7/.env b/linux/atlassian/jira/6/6.4.7/.env new file mode 100644 index 000000000..61e357e69 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.7/Dockerfile b/linux/atlassian/jira/6/6.4.7/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.7/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.7/Makefile b/linux/atlassian/jira/6/6.4.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.7/docker-compose.yml b/linux/atlassian/jira/6/6.4.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.7/entrypoint.sh b/linux/atlassian/jira/6/6.4.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.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/atlassian/jira/6/6.4.8/.env b/linux/atlassian/jira/6/6.4.8/.env new file mode 100644 index 000000000..075010e8e --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.8/Dockerfile b/linux/atlassian/jira/6/6.4.8/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.8/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.8/Makefile b/linux/atlassian/jira/6/6.4.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.8/docker-compose.yml b/linux/atlassian/jira/6/6.4.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.8/entrypoint.sh b/linux/atlassian/jira/6/6.4.8/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.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/atlassian/jira/6/6.4.9/.env b/linux/atlassian/jira/6/6.4.9/.env new file mode 100644 index 000000000..82ffee022 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4.9/Dockerfile b/linux/atlassian/jira/6/6.4.9/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.9/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.9/Makefile b/linux/atlassian/jira/6/6.4.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/jira/6/6.4.9/docker-compose.yml b/linux/atlassian/jira/6/6.4.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4.9/entrypoint.sh b/linux/atlassian/jira/6/6.4.9/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/6.4.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/atlassian/jira/6/6.4/.env b/linux/atlassian/jira/6/6.4/.env new file mode 100644 index 000000000..6af44d925 --- /dev/null +++ b/linux/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-war.tar.gz diff --git a/linux/atlassian/jira/6/6.4/Dockerfile b/linux/atlassian/jira/6/6.4/Dockerfile new file mode 100644 index 000000000..9d7304645 --- /dev/null +++ b/linux/atlassian/jira/6/6.4/Dockerfile @@ -0,0 +1,50 @@ +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/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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/Makefile b/linux/atlassian/jira/6/6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/6/6.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/6/6.4/docker-compose.yml b/linux/atlassian/jira/6/6.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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/6/6.4/entrypoint.sh b/linux/atlassian/jira/6/6.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/6/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/atlassian/jira/7/7.0.0/.env b/linux/atlassian/jira/7/7.0.0/.env new file mode 100644 index 000000000..a427c2fd6 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.0.0/Dockerfile b/linux/atlassian/jira/7/7.0.0/Dockerfile index ca8f4b68e..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.0.0/Dockerfile +++ b/linux/atlassian/jira/7/7.0.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.0.0/Makefile b/linux/atlassian/jira/7/7.0.0/Makefile index be763d410..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.0.0/Makefile +++ b/linux/atlassian/jira/7/7.0.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.0.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.0.0/docker-compose.yml b/linux/atlassian/jira/7/7.0.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.0.10/.env b/linux/atlassian/jira/7/7.0.10/.env new file mode 100644 index 000000000..da7304fef --- /dev/null +++ b/linux/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/atlassian/jira/7/7.0.10/Dockerfile b/linux/atlassian/jira/7/7.0.10/Dockerfile index b9c7daa0c..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.0.10/Dockerfile +++ b/linux/atlassian/jira/7/7.0.10/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.0.10/Makefile b/linux/atlassian/jira/7/7.0.10/Makefile index 0e9be2360..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.0.10/Makefile +++ b/linux/atlassian/jira/7/7.0.10/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.0.10 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.0.10/docker-compose.yml b/linux/atlassian/jira/7/7.0.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.0.11/.env b/linux/atlassian/jira/7/7.0.11/.env new file mode 100644 index 000000000..163c4d371 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.0.11/Dockerfile b/linux/atlassian/jira/7/7.0.11/Dockerfile index 25fa7b74c..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.0.11/Dockerfile +++ b/linux/atlassian/jira/7/7.0.11/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.0.11/Makefile b/linux/atlassian/jira/7/7.0.11/Makefile index e078161b8..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.0.11/Makefile +++ b/linux/atlassian/jira/7/7.0.11/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.0.11 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.0.11/docker-compose.yml b/linux/atlassian/jira/7/7.0.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.0.2/.env b/linux/atlassian/jira/7/7.0.2/.env new file mode 100644 index 000000000..71f21fe70 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.0.2/Dockerfile b/linux/atlassian/jira/7/7.0.2/Dockerfile index e26bbba41..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.0.2/Dockerfile +++ b/linux/atlassian/jira/7/7.0.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.0.2/Makefile b/linux/atlassian/jira/7/7.0.2/Makefile index 257105852..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.0.2/Makefile +++ b/linux/atlassian/jira/7/7.0.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.0.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.0.2/docker-compose.yml b/linux/atlassian/jira/7/7.0.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.0.4/.env b/linux/atlassian/jira/7/7.0.4/.env new file mode 100644 index 000000000..abfad9d05 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.0.4/Dockerfile b/linux/atlassian/jira/7/7.0.4/Dockerfile index 92f8d5eb7..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.0.4/Dockerfile +++ b/linux/atlassian/jira/7/7.0.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.0.4/Makefile b/linux/atlassian/jira/7/7.0.4/Makefile index a03580e31..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.0.4/Makefile +++ b/linux/atlassian/jira/7/7.0.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.0.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.0.4/docker-compose.yml b/linux/atlassian/jira/7/7.0.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.0.5/.env b/linux/atlassian/jira/7/7.0.5/.env new file mode 100644 index 000000000..98491cbf7 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.0.5/Dockerfile b/linux/atlassian/jira/7/7.0.5/Dockerfile index f4867fcc8..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.0.5/Dockerfile +++ b/linux/atlassian/jira/7/7.0.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.0.5/Makefile b/linux/atlassian/jira/7/7.0.5/Makefile index cbb7cb153..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.0.5/Makefile +++ b/linux/atlassian/jira/7/7.0.5/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.0.5 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.0.5/docker-compose.yml b/linux/atlassian/jira/7/7.0.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.1.0/.env b/linux/atlassian/jira/7/7.1.0/.env new file mode 100644 index 000000000..78136b8b1 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.1.0/Dockerfile b/linux/atlassian/jira/7/7.1.0/Dockerfile index 5190a5edf..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.1.0/Dockerfile +++ b/linux/atlassian/jira/7/7.1.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.1.0/Makefile b/linux/atlassian/jira/7/7.1.0/Makefile index 1c6bc6751..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.1.0/Makefile +++ b/linux/atlassian/jira/7/7.1.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.1.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.1.0/docker-compose.yml b/linux/atlassian/jira/7/7.1.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.1.1/.env b/linux/atlassian/jira/7/7.1.1/.env new file mode 100644 index 000000000..cb96db584 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.1.1/Dockerfile b/linux/atlassian/jira/7/7.1.1/Dockerfile index 528898b27..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.1.1/Dockerfile +++ b/linux/atlassian/jira/7/7.1.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.1.1/Makefile b/linux/atlassian/jira/7/7.1.1/Makefile index 2bcd8ce3b..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.1.1/Makefile +++ b/linux/atlassian/jira/7/7.1.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.1.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.1.1/docker-compose.yml b/linux/atlassian/jira/7/7.1.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.1.10/.env b/linux/atlassian/jira/7/7.1.10/.env new file mode 100644 index 000000000..572236ebe --- /dev/null +++ b/linux/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/atlassian/jira/7/7.1.10/Dockerfile b/linux/atlassian/jira/7/7.1.10/Dockerfile index f4a4d282d..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.1.10/Dockerfile +++ b/linux/atlassian/jira/7/7.1.10/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.1.10/Makefile b/linux/atlassian/jira/7/7.1.10/Makefile index 620d5a603..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.1.10/Makefile +++ b/linux/atlassian/jira/7/7.1.10/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.1.10 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.1.10/docker-compose.yml b/linux/atlassian/jira/7/7.1.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.1.2/.env b/linux/atlassian/jira/7/7.1.2/.env new file mode 100644 index 000000000..c0ccd1af5 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.1.2/Dockerfile b/linux/atlassian/jira/7/7.1.2/Dockerfile index ba19c9e0a..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.1.2/Dockerfile +++ b/linux/atlassian/jira/7/7.1.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.1.2/Makefile b/linux/atlassian/jira/7/7.1.2/Makefile index c2f355e7e..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.1.2/Makefile +++ b/linux/atlassian/jira/7/7.1.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.1.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.1.2/docker-compose.yml b/linux/atlassian/jira/7/7.1.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.1.4/.env b/linux/atlassian/jira/7/7.1.4/.env new file mode 100644 index 000000000..8f45920b2 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.1.4/Dockerfile b/linux/atlassian/jira/7/7.1.4/Dockerfile index 4f80056f7..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.1.4/Dockerfile +++ b/linux/atlassian/jira/7/7.1.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.1.4/Makefile b/linux/atlassian/jira/7/7.1.4/Makefile index f5bd527a8..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.1.4/Makefile +++ b/linux/atlassian/jira/7/7.1.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.1.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.1.4/docker-compose.yml b/linux/atlassian/jira/7/7.1.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.1.6/.env b/linux/atlassian/jira/7/7.1.6/.env new file mode 100644 index 000000000..69298176f --- /dev/null +++ b/linux/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/atlassian/jira/7/7.1.6/Dockerfile b/linux/atlassian/jira/7/7.1.6/Dockerfile index 4bb4b598f..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.1.6/Dockerfile +++ b/linux/atlassian/jira/7/7.1.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.1.6/Makefile b/linux/atlassian/jira/7/7.1.6/Makefile index dcc53b272..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.1.6/Makefile +++ b/linux/atlassian/jira/7/7.1.6/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.1.6 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.1.6/docker-compose.yml b/linux/atlassian/jira/7/7.1.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.1.7/.env b/linux/atlassian/jira/7/7.1.7/.env new file mode 100644 index 000000000..47c1b54f0 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.1.7/Dockerfile b/linux/atlassian/jira/7/7.1.7/Dockerfile index 98d602ad2..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.1.7/Dockerfile +++ b/linux/atlassian/jira/7/7.1.7/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.1.7/Makefile b/linux/atlassian/jira/7/7.1.7/Makefile index 0150406ad..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.1.7/Makefile +++ b/linux/atlassian/jira/7/7.1.7/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.1.7 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.1.7/docker-compose.yml b/linux/atlassian/jira/7/7.1.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.1.8/.env b/linux/atlassian/jira/7/7.1.8/.env new file mode 100644 index 000000000..e9fcfa9c3 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.1.8/Dockerfile b/linux/atlassian/jira/7/7.1.8/Dockerfile index bac2351d8..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.1.8/Dockerfile +++ b/linux/atlassian/jira/7/7.1.8/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.1.8/Makefile b/linux/atlassian/jira/7/7.1.8/Makefile index a3c7f5c89..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.1.8/Makefile +++ b/linux/atlassian/jira/7/7.1.8/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.1.8 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.1.8/docker-compose.yml b/linux/atlassian/jira/7/7.1.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.1.9/.env b/linux/atlassian/jira/7/7.1.9/.env new file mode 100644 index 000000000..85beec67a --- /dev/null +++ b/linux/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/atlassian/jira/7/7.1.9/Dockerfile b/linux/atlassian/jira/7/7.1.9/Dockerfile index cfdfbd6e2..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.1.9/Dockerfile +++ b/linux/atlassian/jira/7/7.1.9/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.1.9/Makefile b/linux/atlassian/jira/7/7.1.9/Makefile index 410dc7fe5..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.1.9/Makefile +++ b/linux/atlassian/jira/7/7.1.9/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.1.9 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.1.9/docker-compose.yml b/linux/atlassian/jira/7/7.1.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.10.0/.env b/linux/atlassian/jira/7/7.10.0/.env new file mode 100644 index 000000000..6a6819366 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.10.0/Dockerfile b/linux/atlassian/jira/7/7.10.0/Dockerfile index a0f302de7..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.10.0/Dockerfile +++ b/linux/atlassian/jira/7/7.10.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.10.0/Makefile b/linux/atlassian/jira/7/7.10.0/Makefile index 1b52be659..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.10.0/Makefile +++ b/linux/atlassian/jira/7/7.10.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.10.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.10.0/docker-compose.yml b/linux/atlassian/jira/7/7.10.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.10.1/.env b/linux/atlassian/jira/7/7.10.1/.env new file mode 100644 index 000000000..995fb73ff --- /dev/null +++ b/linux/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/atlassian/jira/7/7.10.1/Dockerfile b/linux/atlassian/jira/7/7.10.1/Dockerfile index 6e545a8a8..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.10.1/Dockerfile +++ b/linux/atlassian/jira/7/7.10.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.10.1/Makefile b/linux/atlassian/jira/7/7.10.1/Makefile index d9af21890..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.10.1/Makefile +++ b/linux/atlassian/jira/7/7.10.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.10.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.10.1/docker-compose.yml b/linux/atlassian/jira/7/7.10.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.10.2/.env b/linux/atlassian/jira/7/7.10.2/.env new file mode 100644 index 000000000..57b595c8e --- /dev/null +++ b/linux/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/atlassian/jira/7/7.10.2/Dockerfile b/linux/atlassian/jira/7/7.10.2/Dockerfile index 5a0561f1c..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.10.2/Dockerfile +++ b/linux/atlassian/jira/7/7.10.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.10.2/Makefile b/linux/atlassian/jira/7/7.10.2/Makefile index a38c01ee4..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.10.2/Makefile +++ b/linux/atlassian/jira/7/7.10.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.10.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.10.2/docker-compose.yml b/linux/atlassian/jira/7/7.10.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.11.0/.env b/linux/atlassian/jira/7/7.11.0/.env new file mode 100644 index 000000000..e2664eb16 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.11.0/Dockerfile b/linux/atlassian/jira/7/7.11.0/Dockerfile index a2195559b..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.11.0/Dockerfile +++ b/linux/atlassian/jira/7/7.11.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.11.0/Makefile b/linux/atlassian/jira/7/7.11.0/Makefile index 8696c89ba..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.11.0/Makefile +++ b/linux/atlassian/jira/7/7.11.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.11.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.11.0/docker-compose.yml b/linux/atlassian/jira/7/7.11.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.11.1/.env b/linux/atlassian/jira/7/7.11.1/.env new file mode 100644 index 000000000..f18c39cf1 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.11.1/Dockerfile b/linux/atlassian/jira/7/7.11.1/Dockerfile index ea24c559d..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.11.1/Dockerfile +++ b/linux/atlassian/jira/7/7.11.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.11.1/Makefile b/linux/atlassian/jira/7/7.11.1/Makefile index 5b3888458..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.11.1/Makefile +++ b/linux/atlassian/jira/7/7.11.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.11.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.11.1/docker-compose.yml b/linux/atlassian/jira/7/7.11.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.11.2/.env b/linux/atlassian/jira/7/7.11.2/.env new file mode 100644 index 000000000..e6cfc58ca --- /dev/null +++ b/linux/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/atlassian/jira/7/7.11.2/Dockerfile b/linux/atlassian/jira/7/7.11.2/Dockerfile index a4a924426..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.11.2/Dockerfile +++ b/linux/atlassian/jira/7/7.11.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.11.2/Makefile b/linux/atlassian/jira/7/7.11.2/Makefile index 7cad5e911..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.11.2/Makefile +++ b/linux/atlassian/jira/7/7.11.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.11.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.11.2/docker-compose.yml b/linux/atlassian/jira/7/7.11.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.12.0/.env b/linux/atlassian/jira/7/7.12.0/.env new file mode 100644 index 000000000..b23fa9861 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.12.0/Dockerfile b/linux/atlassian/jira/7/7.12.0/Dockerfile index 2befbc48f..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.12.0/Dockerfile +++ b/linux/atlassian/jira/7/7.12.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.12.0/Makefile b/linux/atlassian/jira/7/7.12.0/Makefile index ca46ace4c..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.12.0/Makefile +++ b/linux/atlassian/jira/7/7.12.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.12.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.12.0/docker-compose.yml b/linux/atlassian/jira/7/7.12.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.12.1/.env b/linux/atlassian/jira/7/7.12.1/.env new file mode 100644 index 000000000..c076dcc3a --- /dev/null +++ b/linux/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/atlassian/jira/7/7.12.1/Dockerfile b/linux/atlassian/jira/7/7.12.1/Dockerfile index cbe320063..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.12.1/Dockerfile +++ b/linux/atlassian/jira/7/7.12.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.12.1/Makefile b/linux/atlassian/jira/7/7.12.1/Makefile index c86569ef5..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.12.1/Makefile +++ b/linux/atlassian/jira/7/7.12.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.12.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.12.1/docker-compose.yml b/linux/atlassian/jira/7/7.12.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.12.3/.env b/linux/atlassian/jira/7/7.12.3/.env new file mode 100644 index 000000000..1dce863ee --- /dev/null +++ b/linux/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/atlassian/jira/7/7.12.3/Dockerfile b/linux/atlassian/jira/7/7.12.3/Dockerfile index ff5c9a997..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.12.3/Dockerfile +++ b/linux/atlassian/jira/7/7.12.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.12.3/Makefile b/linux/atlassian/jira/7/7.12.3/Makefile index 5485c4f70..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.12.3/Makefile +++ b/linux/atlassian/jira/7/7.12.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.12.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.12.3/docker-compose.yml b/linux/atlassian/jira/7/7.12.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.0/.env b/linux/atlassian/jira/7/7.13.0/.env new file mode 100644 index 000000000..fd36990fc --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.0/Dockerfile b/linux/atlassian/jira/7/7.13.0/Dockerfile index 32d673841..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.0/Dockerfile +++ b/linux/atlassian/jira/7/7.13.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.0/Makefile b/linux/atlassian/jira/7/7.13.0/Makefile index 5da2c7963..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.0/Makefile +++ b/linux/atlassian/jira/7/7.13.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.0/docker-compose.yml b/linux/atlassian/jira/7/7.13.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.1/.env b/linux/atlassian/jira/7/7.13.1/.env new file mode 100644 index 000000000..cf0f958f7 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.1/Dockerfile b/linux/atlassian/jira/7/7.13.1/Dockerfile index 4f1c76cb7..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.1/Dockerfile +++ b/linux/atlassian/jira/7/7.13.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.1/Makefile b/linux/atlassian/jira/7/7.13.1/Makefile index e37e2b35c..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.1/Makefile +++ b/linux/atlassian/jira/7/7.13.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.1/docker-compose.yml b/linux/atlassian/jira/7/7.13.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.11/.env b/linux/atlassian/jira/7/7.13.11/.env new file mode 100644 index 000000000..46d2ff6b8 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.11/Dockerfile b/linux/atlassian/jira/7/7.13.11/Dockerfile index 6a1bbc847..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.11/Dockerfile +++ b/linux/atlassian/jira/7/7.13.11/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.11/Makefile b/linux/atlassian/jira/7/7.13.11/Makefile index 50d0d2038..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.11/Makefile +++ b/linux/atlassian/jira/7/7.13.11/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.11 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.11/docker-compose.yml b/linux/atlassian/jira/7/7.13.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.12/.env b/linux/atlassian/jira/7/7.13.12/.env new file mode 100644 index 000000000..694512abe --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.12/Dockerfile b/linux/atlassian/jira/7/7.13.12/Dockerfile index fd4d355b0..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.12/Dockerfile +++ b/linux/atlassian/jira/7/7.13.12/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.12/Makefile b/linux/atlassian/jira/7/7.13.12/Makefile index 06bff7677..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.12/Makefile +++ b/linux/atlassian/jira/7/7.13.12/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.12 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.12/docker-compose.yml b/linux/atlassian/jira/7/7.13.12/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.13/.env b/linux/atlassian/jira/7/7.13.13/.env new file mode 100644 index 000000000..9308909c6 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.13/Dockerfile b/linux/atlassian/jira/7/7.13.13/Dockerfile index 888920983..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.13/Dockerfile +++ b/linux/atlassian/jira/7/7.13.13/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.13/Makefile b/linux/atlassian/jira/7/7.13.13/Makefile index bb550c00d..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.13/Makefile +++ b/linux/atlassian/jira/7/7.13.13/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.13 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.13/docker-compose.yml b/linux/atlassian/jira/7/7.13.13/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.14/.env b/linux/atlassian/jira/7/7.13.14/.env new file mode 100644 index 000000000..aa9ef6876 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.14/Dockerfile b/linux/atlassian/jira/7/7.13.14/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.14/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.14/Makefile b/linux/atlassian/jira/7/7.13.14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.14/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.14/docker-compose.yml b/linux/atlassian/jira/7/7.13.14/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.14/entrypoint.sh b/linux/atlassian/jira/7/7.13.14/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.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/atlassian/jira/7/7.13.15/.env b/linux/atlassian/jira/7/7.13.15/.env new file mode 100644 index 000000000..013f6772f --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.15/Dockerfile b/linux/atlassian/jira/7/7.13.15/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.15/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.15/Makefile b/linux/atlassian/jira/7/7.13.15/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.15/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.15/docker-compose.yml b/linux/atlassian/jira/7/7.13.15/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.15/entrypoint.sh b/linux/atlassian/jira/7/7.13.15/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.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/atlassian/jira/7/7.13.16/.env b/linux/atlassian/jira/7/7.13.16/.env new file mode 100644 index 000000000..2070f85b4 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.16/Dockerfile b/linux/atlassian/jira/7/7.13.16/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.16/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.16/Makefile b/linux/atlassian/jira/7/7.13.16/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.16/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.16/docker-compose.yml b/linux/atlassian/jira/7/7.13.16/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.16/entrypoint.sh b/linux/atlassian/jira/7/7.13.16/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.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/atlassian/jira/7/7.13.17/.env b/linux/atlassian/jira/7/7.13.17/.env new file mode 100644 index 000000000..331ba08d4 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.17/Dockerfile b/linux/atlassian/jira/7/7.13.17/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.17/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.17/Makefile b/linux/atlassian/jira/7/7.13.17/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.17/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.17/docker-compose.yml b/linux/atlassian/jira/7/7.13.17/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.17/entrypoint.sh b/linux/atlassian/jira/7/7.13.17/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.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/atlassian/jira/7/7.13.18/.env b/linux/atlassian/jira/7/7.13.18/.env new file mode 100644 index 000000000..8acdd42c3 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.18/Dockerfile b/linux/atlassian/jira/7/7.13.18/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.18/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.18/Makefile b/linux/atlassian/jira/7/7.13.18/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.18/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.18/docker-compose.yml b/linux/atlassian/jira/7/7.13.18/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.18/entrypoint.sh b/linux/atlassian/jira/7/7.13.18/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/atlassian/jira/7/7.13.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/atlassian/jira/7/7.13.2/.env b/linux/atlassian/jira/7/7.13.2/.env new file mode 100644 index 000000000..6aa40c1d6 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.2/Dockerfile b/linux/atlassian/jira/7/7.13.2/Dockerfile index 61675251c..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.2/Dockerfile +++ b/linux/atlassian/jira/7/7.13.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.2/Makefile b/linux/atlassian/jira/7/7.13.2/Makefile index 1ca44fd6d..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.2/Makefile +++ b/linux/atlassian/jira/7/7.13.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.2/docker-compose.yml b/linux/atlassian/jira/7/7.13.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.3/.env b/linux/atlassian/jira/7/7.13.3/.env new file mode 100644 index 000000000..82be0f831 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.3/Dockerfile b/linux/atlassian/jira/7/7.13.3/Dockerfile index 3bb690fbe..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.3/Dockerfile +++ b/linux/atlassian/jira/7/7.13.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.3/Makefile b/linux/atlassian/jira/7/7.13.3/Makefile index f98ce31c2..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.3/Makefile +++ b/linux/atlassian/jira/7/7.13.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.3/docker-compose.yml b/linux/atlassian/jira/7/7.13.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.4/.env b/linux/atlassian/jira/7/7.13.4/.env new file mode 100644 index 000000000..ba50e8fd0 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.4/Dockerfile b/linux/atlassian/jira/7/7.13.4/Dockerfile index 7990267e9..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.4/Dockerfile +++ b/linux/atlassian/jira/7/7.13.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.4/Makefile b/linux/atlassian/jira/7/7.13.4/Makefile index 3003fd4f8..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.4/Makefile +++ b/linux/atlassian/jira/7/7.13.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.4/docker-compose.yml b/linux/atlassian/jira/7/7.13.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.5/.env b/linux/atlassian/jira/7/7.13.5/.env new file mode 100644 index 000000000..61aafd052 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.5/Dockerfile b/linux/atlassian/jira/7/7.13.5/Dockerfile index 9dc0928e3..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.5/Dockerfile +++ b/linux/atlassian/jira/7/7.13.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.5/Makefile b/linux/atlassian/jira/7/7.13.5/Makefile index 6b0b5d4fa..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.5/Makefile +++ b/linux/atlassian/jira/7/7.13.5/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.5 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.5/docker-compose.yml b/linux/atlassian/jira/7/7.13.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.6/.env b/linux/atlassian/jira/7/7.13.6/.env new file mode 100644 index 000000000..3b09a74ca --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.6/Dockerfile b/linux/atlassian/jira/7/7.13.6/Dockerfile index dfd1d9712..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.6/Dockerfile +++ b/linux/atlassian/jira/7/7.13.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.6/Makefile b/linux/atlassian/jira/7/7.13.6/Makefile index 5426e1914..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.6/Makefile +++ b/linux/atlassian/jira/7/7.13.6/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.6 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.6/docker-compose.yml b/linux/atlassian/jira/7/7.13.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.8/.env b/linux/atlassian/jira/7/7.13.8/.env new file mode 100644 index 000000000..13875b716 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.8/Dockerfile b/linux/atlassian/jira/7/7.13.8/Dockerfile index e19343579..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.8/Dockerfile +++ b/linux/atlassian/jira/7/7.13.8/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.8/Makefile b/linux/atlassian/jira/7/7.13.8/Makefile index cd67bf905..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.8/Makefile +++ b/linux/atlassian/jira/7/7.13.8/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.8 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.8/docker-compose.yml b/linux/atlassian/jira/7/7.13.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.13.9/.env b/linux/atlassian/jira/7/7.13.9/.env new file mode 100644 index 000000000..70b1d4b62 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.13.9/Dockerfile b/linux/atlassian/jira/7/7.13.9/Dockerfile index 3efaa8d12..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.13.9/Dockerfile +++ b/linux/atlassian/jira/7/7.13.9/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.13.9/Makefile b/linux/atlassian/jira/7/7.13.9/Makefile index a9edcba91..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.13.9/Makefile +++ b/linux/atlassian/jira/7/7.13.9/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.13.9 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.13.9/docker-compose.yml b/linux/atlassian/jira/7/7.13.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.0/.env b/linux/atlassian/jira/7/7.2.0/.env new file mode 100644 index 000000000..d8a03571d --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.0/Dockerfile b/linux/atlassian/jira/7/7.2.0/Dockerfile index b844d0cf7..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.0/Dockerfile +++ b/linux/atlassian/jira/7/7.2.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.0/Makefile b/linux/atlassian/jira/7/7.2.0/Makefile index 674b0183f..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.0/Makefile +++ b/linux/atlassian/jira/7/7.2.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.0/docker-compose.yml b/linux/atlassian/jira/7/7.2.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.1/.env b/linux/atlassian/jira/7/7.2.1/.env new file mode 100644 index 000000000..64e63bdeb --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.1/Dockerfile b/linux/atlassian/jira/7/7.2.1/Dockerfile index baed8a983..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.1/Dockerfile +++ b/linux/atlassian/jira/7/7.2.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.1/Makefile b/linux/atlassian/jira/7/7.2.1/Makefile index 142b75e00..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.1/Makefile +++ b/linux/atlassian/jira/7/7.2.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.1/docker-compose.yml b/linux/atlassian/jira/7/7.2.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.10/.env b/linux/atlassian/jira/7/7.2.10/.env new file mode 100644 index 000000000..1a1159a44 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.10/Dockerfile b/linux/atlassian/jira/7/7.2.10/Dockerfile index ddd5a4b6b..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.10/Dockerfile +++ b/linux/atlassian/jira/7/7.2.10/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.10/Makefile b/linux/atlassian/jira/7/7.2.10/Makefile index fefd3058f..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.10/Makefile +++ b/linux/atlassian/jira/7/7.2.10/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.10 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.10/docker-compose.yml b/linux/atlassian/jira/7/7.2.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.11/.env b/linux/atlassian/jira/7/7.2.11/.env new file mode 100644 index 000000000..1d62b23f6 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.11/Dockerfile b/linux/atlassian/jira/7/7.2.11/Dockerfile index e6d17c901..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.11/Dockerfile +++ b/linux/atlassian/jira/7/7.2.11/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.11/Makefile b/linux/atlassian/jira/7/7.2.11/Makefile index 23967cd19..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.11/Makefile +++ b/linux/atlassian/jira/7/7.2.11/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.11 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.11/docker-compose.yml b/linux/atlassian/jira/7/7.2.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.12/.env b/linux/atlassian/jira/7/7.2.12/.env new file mode 100644 index 000000000..ea9cd4ff2 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.12/Dockerfile b/linux/atlassian/jira/7/7.2.12/Dockerfile index 35b9499ce..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.12/Dockerfile +++ b/linux/atlassian/jira/7/7.2.12/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.12/Makefile b/linux/atlassian/jira/7/7.2.12/Makefile index 1b26f82bb..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.12/Makefile +++ b/linux/atlassian/jira/7/7.2.12/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.12 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.12/docker-compose.yml b/linux/atlassian/jira/7/7.2.12/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.13/.env b/linux/atlassian/jira/7/7.2.13/.env new file mode 100644 index 000000000..6851485d7 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.13/Dockerfile b/linux/atlassian/jira/7/7.2.13/Dockerfile index 45912f43a..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.13/Dockerfile +++ b/linux/atlassian/jira/7/7.2.13/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.13/Makefile b/linux/atlassian/jira/7/7.2.13/Makefile index 233a12b8e..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.13/Makefile +++ b/linux/atlassian/jira/7/7.2.13/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.13 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.13/docker-compose.yml b/linux/atlassian/jira/7/7.2.13/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.14/.env b/linux/atlassian/jira/7/7.2.14/.env new file mode 100644 index 000000000..67a8e9316 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.14/Dockerfile b/linux/atlassian/jira/7/7.2.14/Dockerfile index daf88ce43..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.14/Dockerfile +++ b/linux/atlassian/jira/7/7.2.14/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.14/Makefile b/linux/atlassian/jira/7/7.2.14/Makefile index 460be90f3..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.14/Makefile +++ b/linux/atlassian/jira/7/7.2.14/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.14 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.14/docker-compose.yml b/linux/atlassian/jira/7/7.2.14/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.15/.env b/linux/atlassian/jira/7/7.2.15/.env new file mode 100644 index 000000000..94a32b914 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.15/Dockerfile b/linux/atlassian/jira/7/7.2.15/Dockerfile index 6a029423e..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.15/Dockerfile +++ b/linux/atlassian/jira/7/7.2.15/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.15/Makefile b/linux/atlassian/jira/7/7.2.15/Makefile index b1a683876..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.15/Makefile +++ b/linux/atlassian/jira/7/7.2.15/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.15 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.15/docker-compose.yml b/linux/atlassian/jira/7/7.2.15/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.2/.env b/linux/atlassian/jira/7/7.2.2/.env new file mode 100644 index 000000000..e33263206 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.2/Dockerfile b/linux/atlassian/jira/7/7.2.2/Dockerfile index fd0548d1a..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.2/Dockerfile +++ b/linux/atlassian/jira/7/7.2.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.2/Makefile b/linux/atlassian/jira/7/7.2.2/Makefile index 3d16590aa..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.2/Makefile +++ b/linux/atlassian/jira/7/7.2.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.2/docker-compose.yml b/linux/atlassian/jira/7/7.2.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.3/.env b/linux/atlassian/jira/7/7.2.3/.env new file mode 100644 index 000000000..e2b285c89 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.3/Dockerfile b/linux/atlassian/jira/7/7.2.3/Dockerfile index 3de5f002e..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.3/Dockerfile +++ b/linux/atlassian/jira/7/7.2.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.3/Makefile b/linux/atlassian/jira/7/7.2.3/Makefile index a71c4c82a..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.3/Makefile +++ b/linux/atlassian/jira/7/7.2.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.3/docker-compose.yml b/linux/atlassian/jira/7/7.2.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.4/.env b/linux/atlassian/jira/7/7.2.4/.env new file mode 100644 index 000000000..b34aabd6a --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.4/Dockerfile b/linux/atlassian/jira/7/7.2.4/Dockerfile index 0306f95d6..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.4/Dockerfile +++ b/linux/atlassian/jira/7/7.2.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.4/Makefile b/linux/atlassian/jira/7/7.2.4/Makefile index 6c92ba06f..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.4/Makefile +++ b/linux/atlassian/jira/7/7.2.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.4/docker-compose.yml b/linux/atlassian/jira/7/7.2.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.6/.env b/linux/atlassian/jira/7/7.2.6/.env new file mode 100644 index 000000000..8b169462f --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.6/Dockerfile b/linux/atlassian/jira/7/7.2.6/Dockerfile index c61c921c9..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.6/Dockerfile +++ b/linux/atlassian/jira/7/7.2.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.6/Makefile b/linux/atlassian/jira/7/7.2.6/Makefile index 6b4deb64c..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.6/Makefile +++ b/linux/atlassian/jira/7/7.2.6/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.6 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.6/docker-compose.yml b/linux/atlassian/jira/7/7.2.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.7/.env b/linux/atlassian/jira/7/7.2.7/.env new file mode 100644 index 000000000..a773ec8c9 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.7/Dockerfile b/linux/atlassian/jira/7/7.2.7/Dockerfile index 2ce57a56e..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.7/Dockerfile +++ b/linux/atlassian/jira/7/7.2.7/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.7/Makefile b/linux/atlassian/jira/7/7.2.7/Makefile index da51141eb..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.7/Makefile +++ b/linux/atlassian/jira/7/7.2.7/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.7 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.7/docker-compose.yml b/linux/atlassian/jira/7/7.2.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.8/.env b/linux/atlassian/jira/7/7.2.8/.env new file mode 100644 index 000000000..4d59c038a --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.8/Dockerfile b/linux/atlassian/jira/7/7.2.8/Dockerfile index 8aa726749..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.8/Dockerfile +++ b/linux/atlassian/jira/7/7.2.8/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.8/Makefile b/linux/atlassian/jira/7/7.2.8/Makefile index d519af2b2..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.8/Makefile +++ b/linux/atlassian/jira/7/7.2.8/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.8 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.8/docker-compose.yml b/linux/atlassian/jira/7/7.2.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.2.9/.env b/linux/atlassian/jira/7/7.2.9/.env new file mode 100644 index 000000000..3c983ba88 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.2.9/Dockerfile b/linux/atlassian/jira/7/7.2.9/Dockerfile index a29c871e2..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.2.9/Dockerfile +++ b/linux/atlassian/jira/7/7.2.9/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.2.9/Makefile b/linux/atlassian/jira/7/7.2.9/Makefile index 51087c069..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.2.9/Makefile +++ b/linux/atlassian/jira/7/7.2.9/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.2.9 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.2.9/docker-compose.yml b/linux/atlassian/jira/7/7.2.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.0/.env b/linux/atlassian/jira/7/7.3.0/.env new file mode 100644 index 000000000..2056a5abb --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.0/Dockerfile b/linux/atlassian/jira/7/7.3.0/Dockerfile index 75be7bce6..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.0/Dockerfile +++ b/linux/atlassian/jira/7/7.3.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.0/Makefile b/linux/atlassian/jira/7/7.3.0/Makefile index b744b32be..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.0/Makefile +++ b/linux/atlassian/jira/7/7.3.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.0/docker-compose.yml b/linux/atlassian/jira/7/7.3.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.1/.env b/linux/atlassian/jira/7/7.3.1/.env new file mode 100644 index 000000000..658f497ce --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.1/Dockerfile b/linux/atlassian/jira/7/7.3.1/Dockerfile index 85f4595c1..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.1/Dockerfile +++ b/linux/atlassian/jira/7/7.3.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.1/Makefile b/linux/atlassian/jira/7/7.3.1/Makefile index e6ca9757f..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.1/Makefile +++ b/linux/atlassian/jira/7/7.3.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.1/docker-compose.yml b/linux/atlassian/jira/7/7.3.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.2/.env b/linux/atlassian/jira/7/7.3.2/.env new file mode 100644 index 000000000..c6a3ef0ad --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.2/Dockerfile b/linux/atlassian/jira/7/7.3.2/Dockerfile index ee39f3bfa..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.2/Dockerfile +++ b/linux/atlassian/jira/7/7.3.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.2/Makefile b/linux/atlassian/jira/7/7.3.2/Makefile index f19a88679..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.2/Makefile +++ b/linux/atlassian/jira/7/7.3.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.2/docker-compose.yml b/linux/atlassian/jira/7/7.3.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.3/.env b/linux/atlassian/jira/7/7.3.3/.env new file mode 100644 index 000000000..3402d9ecd --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.3/Dockerfile b/linux/atlassian/jira/7/7.3.3/Dockerfile index 193a929ba..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.3/Dockerfile +++ b/linux/atlassian/jira/7/7.3.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.3/Makefile b/linux/atlassian/jira/7/7.3.3/Makefile index 5656105a5..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.3/Makefile +++ b/linux/atlassian/jira/7/7.3.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.3/docker-compose.yml b/linux/atlassian/jira/7/7.3.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.4/.env b/linux/atlassian/jira/7/7.3.4/.env new file mode 100644 index 000000000..18c3f110f --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.4/Dockerfile b/linux/atlassian/jira/7/7.3.4/Dockerfile index 268661f8f..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.4/Dockerfile +++ b/linux/atlassian/jira/7/7.3.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.4/Makefile b/linux/atlassian/jira/7/7.3.4/Makefile index 45256309c..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.4/Makefile +++ b/linux/atlassian/jira/7/7.3.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.4/docker-compose.yml b/linux/atlassian/jira/7/7.3.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.5/.env b/linux/atlassian/jira/7/7.3.5/.env new file mode 100644 index 000000000..913fd8886 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.5/Dockerfile b/linux/atlassian/jira/7/7.3.5/Dockerfile index dcbabee74..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.5/Dockerfile +++ b/linux/atlassian/jira/7/7.3.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.5/Makefile b/linux/atlassian/jira/7/7.3.5/Makefile index dcea2c3b0..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.5/Makefile +++ b/linux/atlassian/jira/7/7.3.5/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.5 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.5/docker-compose.yml b/linux/atlassian/jira/7/7.3.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.6/.env b/linux/atlassian/jira/7/7.3.6/.env new file mode 100644 index 000000000..8b872d760 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.6/Dockerfile b/linux/atlassian/jira/7/7.3.6/Dockerfile index 188f6857d..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.6/Dockerfile +++ b/linux/atlassian/jira/7/7.3.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.6/Makefile b/linux/atlassian/jira/7/7.3.6/Makefile index 7a99ba206..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.6/Makefile +++ b/linux/atlassian/jira/7/7.3.6/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.6 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.6/docker-compose.yml b/linux/atlassian/jira/7/7.3.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.7/.env b/linux/atlassian/jira/7/7.3.7/.env new file mode 100644 index 000000000..21452b86f --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.7/Dockerfile b/linux/atlassian/jira/7/7.3.7/Dockerfile index f274ac5c1..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.7/Dockerfile +++ b/linux/atlassian/jira/7/7.3.7/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.7/Makefile b/linux/atlassian/jira/7/7.3.7/Makefile index 7791706ad..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.7/Makefile +++ b/linux/atlassian/jira/7/7.3.7/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.7 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.7/docker-compose.yml b/linux/atlassian/jira/7/7.3.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.8/.env b/linux/atlassian/jira/7/7.3.8/.env new file mode 100644 index 000000000..b3cb22003 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.8/Dockerfile b/linux/atlassian/jira/7/7.3.8/Dockerfile index fcb483846..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.8/Dockerfile +++ b/linux/atlassian/jira/7/7.3.8/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.8/Makefile b/linux/atlassian/jira/7/7.3.8/Makefile index 1efa30532..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.8/Makefile +++ b/linux/atlassian/jira/7/7.3.8/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.8 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.8/docker-compose.yml b/linux/atlassian/jira/7/7.3.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.3.9/.env b/linux/atlassian/jira/7/7.3.9/.env new file mode 100644 index 000000000..c40bfd9bf --- /dev/null +++ b/linux/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/atlassian/jira/7/7.3.9/Dockerfile b/linux/atlassian/jira/7/7.3.9/Dockerfile index 1d85b041b..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.3.9/Dockerfile +++ b/linux/atlassian/jira/7/7.3.9/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.3.9/Makefile b/linux/atlassian/jira/7/7.3.9/Makefile index 90583bc03..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.3.9/Makefile +++ b/linux/atlassian/jira/7/7.3.9/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.3.9 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.3.9/docker-compose.yml b/linux/atlassian/jira/7/7.3.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.0/.env b/linux/atlassian/jira/7/7.4.0/.env new file mode 100644 index 000000000..f91a8b8ab --- /dev/null +++ b/linux/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/atlassian/jira/7/7.4.0/Dockerfile b/linux/atlassian/jira/7/7.4.0/Dockerfile index 1d5527ad5..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.4.0/Dockerfile +++ b/linux/atlassian/jira/7/7.4.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.4.0/Makefile b/linux/atlassian/jira/7/7.4.0/Makefile index 52e9ac418..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.4.0/Makefile +++ b/linux/atlassian/jira/7/7.4.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.4.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.4.0/docker-compose.yml b/linux/atlassian/jira/7/7.4.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.1/.env b/linux/atlassian/jira/7/7.4.1/.env new file mode 100644 index 000000000..b1f58552e --- /dev/null +++ b/linux/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/atlassian/jira/7/7.4.1/Dockerfile b/linux/atlassian/jira/7/7.4.1/Dockerfile index 6f74d409b..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.4.1/Dockerfile +++ b/linux/atlassian/jira/7/7.4.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.4.1/Makefile b/linux/atlassian/jira/7/7.4.1/Makefile index c7c83da76..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.4.1/Makefile +++ b/linux/atlassian/jira/7/7.4.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.4.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.4.1/docker-compose.yml b/linux/atlassian/jira/7/7.4.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.2/.env b/linux/atlassian/jira/7/7.4.2/.env new file mode 100644 index 000000000..c37353e52 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.4.2/Dockerfile b/linux/atlassian/jira/7/7.4.2/Dockerfile index 5aba5380a..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.4.2/Dockerfile +++ b/linux/atlassian/jira/7/7.4.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.4.2/Makefile b/linux/atlassian/jira/7/7.4.2/Makefile index 4fdc41139..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.4.2/Makefile +++ b/linux/atlassian/jira/7/7.4.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.4.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.4.2/docker-compose.yml b/linux/atlassian/jira/7/7.4.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.3/.env b/linux/atlassian/jira/7/7.4.3/.env new file mode 100644 index 000000000..d7e9cfc9d --- /dev/null +++ b/linux/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/atlassian/jira/7/7.4.3/Dockerfile b/linux/atlassian/jira/7/7.4.3/Dockerfile index 20063c3f2..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.4.3/Dockerfile +++ b/linux/atlassian/jira/7/7.4.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.4.3/Makefile b/linux/atlassian/jira/7/7.4.3/Makefile index 009baca7e..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.4.3/Makefile +++ b/linux/atlassian/jira/7/7.4.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.4.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.4.3/docker-compose.yml b/linux/atlassian/jira/7/7.4.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.4/.env b/linux/atlassian/jira/7/7.4.4/.env new file mode 100644 index 000000000..8d94a5c38 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.4.4/Dockerfile b/linux/atlassian/jira/7/7.4.4/Dockerfile index 8980155df..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.4.4/Dockerfile +++ b/linux/atlassian/jira/7/7.4.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.4.4/Makefile b/linux/atlassian/jira/7/7.4.4/Makefile index 4628d54ba..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.4.4/Makefile +++ b/linux/atlassian/jira/7/7.4.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.4.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.4.4/docker-compose.yml b/linux/atlassian/jira/7/7.4.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.5/.env b/linux/atlassian/jira/7/7.4.5/.env new file mode 100644 index 000000000..b3df67fc4 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.4.5/Dockerfile b/linux/atlassian/jira/7/7.4.5/Dockerfile index 8431bda78..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.4.5/Dockerfile +++ b/linux/atlassian/jira/7/7.4.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.4.5/Makefile b/linux/atlassian/jira/7/7.4.5/Makefile index 99d248d42..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.4.5/Makefile +++ b/linux/atlassian/jira/7/7.4.5/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.4.5 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.4.5/docker-compose.yml b/linux/atlassian/jira/7/7.4.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.4.6/.env b/linux/atlassian/jira/7/7.4.6/.env new file mode 100644 index 000000000..982d5e157 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.4.6/Dockerfile b/linux/atlassian/jira/7/7.4.6/Dockerfile index d4691ceab..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.4.6/Dockerfile +++ b/linux/atlassian/jira/7/7.4.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.4.6/Makefile b/linux/atlassian/jira/7/7.4.6/Makefile index 7dd540b9b..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.4.6/Makefile +++ b/linux/atlassian/jira/7/7.4.6/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.4.6 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.4.6/docker-compose.yml b/linux/atlassian/jira/7/7.4.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.0/.env b/linux/atlassian/jira/7/7.5.0/.env new file mode 100644 index 000000000..1353fbb1e --- /dev/null +++ b/linux/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/atlassian/jira/7/7.5.0/Dockerfile b/linux/atlassian/jira/7/7.5.0/Dockerfile index 5bb1823dd..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.5.0/Dockerfile +++ b/linux/atlassian/jira/7/7.5.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.5.0/Makefile b/linux/atlassian/jira/7/7.5.0/Makefile index 79ae30952..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.5.0/Makefile +++ b/linux/atlassian/jira/7/7.5.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.5.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.5.0/docker-compose.yml b/linux/atlassian/jira/7/7.5.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.1/.env b/linux/atlassian/jira/7/7.5.1/.env new file mode 100644 index 000000000..87d4eaef4 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.5.1/Dockerfile b/linux/atlassian/jira/7/7.5.1/Dockerfile index c6d46d9de..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.5.1/Dockerfile +++ b/linux/atlassian/jira/7/7.5.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.5.1/Makefile b/linux/atlassian/jira/7/7.5.1/Makefile index f27d551d1..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.5.1/Makefile +++ b/linux/atlassian/jira/7/7.5.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.5.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.5.1/docker-compose.yml b/linux/atlassian/jira/7/7.5.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.2/.env b/linux/atlassian/jira/7/7.5.2/.env new file mode 100644 index 000000000..6c6983b79 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.5.2/Dockerfile b/linux/atlassian/jira/7/7.5.2/Dockerfile index 5940efb6b..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.5.2/Dockerfile +++ b/linux/atlassian/jira/7/7.5.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.5.2/Makefile b/linux/atlassian/jira/7/7.5.2/Makefile index bff56675e..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.5.2/Makefile +++ b/linux/atlassian/jira/7/7.5.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.5.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.5.2/docker-compose.yml b/linux/atlassian/jira/7/7.5.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.3/.env b/linux/atlassian/jira/7/7.5.3/.env new file mode 100644 index 000000000..262439205 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.5.3/Dockerfile b/linux/atlassian/jira/7/7.5.3/Dockerfile index 93a55b9b4..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.5.3/Dockerfile +++ b/linux/atlassian/jira/7/7.5.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.5.3/Makefile b/linux/atlassian/jira/7/7.5.3/Makefile index 629bbb09d..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.5.3/Makefile +++ b/linux/atlassian/jira/7/7.5.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.5.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.5.3/docker-compose.yml b/linux/atlassian/jira/7/7.5.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.5.4/.env b/linux/atlassian/jira/7/7.5.4/.env new file mode 100644 index 000000000..24252f5af --- /dev/null +++ b/linux/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/atlassian/jira/7/7.5.4/Dockerfile b/linux/atlassian/jira/7/7.5.4/Dockerfile index 0fb88b1ec..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.5.4/Dockerfile +++ b/linux/atlassian/jira/7/7.5.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.5.4/Makefile b/linux/atlassian/jira/7/7.5.4/Makefile index 7a62f47df..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.5.4/Makefile +++ b/linux/atlassian/jira/7/7.5.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.5.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.5.4/docker-compose.yml b/linux/atlassian/jira/7/7.5.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.0/.env b/linux/atlassian/jira/7/7.6.0/.env new file mode 100644 index 000000000..ad9fa9c3d --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.0/Dockerfile b/linux/atlassian/jira/7/7.6.0/Dockerfile index 05617e427..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.0/Dockerfile +++ b/linux/atlassian/jira/7/7.6.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.0/Makefile b/linux/atlassian/jira/7/7.6.0/Makefile index 22296bdc8..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.0/Makefile +++ b/linux/atlassian/jira/7/7.6.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.0/docker-compose.yml b/linux/atlassian/jira/7/7.6.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.1/.env b/linux/atlassian/jira/7/7.6.1/.env new file mode 100644 index 000000000..af9db42e3 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.1/Dockerfile b/linux/atlassian/jira/7/7.6.1/Dockerfile index b64b86a27..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.1/Dockerfile +++ b/linux/atlassian/jira/7/7.6.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.1/Makefile b/linux/atlassian/jira/7/7.6.1/Makefile index 0f3b0d140..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.1/Makefile +++ b/linux/atlassian/jira/7/7.6.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.1/docker-compose.yml b/linux/atlassian/jira/7/7.6.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.10/.env b/linux/atlassian/jira/7/7.6.10/.env new file mode 100644 index 000000000..9151079b0 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.10/Dockerfile b/linux/atlassian/jira/7/7.6.10/Dockerfile index ed257cf20..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.10/Dockerfile +++ b/linux/atlassian/jira/7/7.6.10/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.10/Makefile b/linux/atlassian/jira/7/7.6.10/Makefile index edac4d2f6..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.10/Makefile +++ b/linux/atlassian/jira/7/7.6.10/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.10 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.10/docker-compose.yml b/linux/atlassian/jira/7/7.6.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.11/.env b/linux/atlassian/jira/7/7.6.11/.env new file mode 100644 index 000000000..b3ac3642a --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.11/Dockerfile b/linux/atlassian/jira/7/7.6.11/Dockerfile index d33d794a2..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.11/Dockerfile +++ b/linux/atlassian/jira/7/7.6.11/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.11/Makefile b/linux/atlassian/jira/7/7.6.11/Makefile index f1a503f40..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.11/Makefile +++ b/linux/atlassian/jira/7/7.6.11/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.11 \ No newline at end of file +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.11/docker-compose.yml b/linux/atlassian/jira/7/7.6.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.12/.env b/linux/atlassian/jira/7/7.6.12/.env new file mode 100644 index 000000000..6e10b6dc2 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.12/Dockerfile b/linux/atlassian/jira/7/7.6.12/Dockerfile index dbf1c3182..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.12/Dockerfile +++ b/linux/atlassian/jira/7/7.6.12/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.12/Makefile b/linux/atlassian/jira/7/7.6.12/Makefile index 95ea442dc..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.12/Makefile +++ b/linux/atlassian/jira/7/7.6.12/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.12 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.12/docker-compose.yml b/linux/atlassian/jira/7/7.6.12/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.13/.env b/linux/atlassian/jira/7/7.6.13/.env new file mode 100644 index 000000000..5868d6764 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.13/Dockerfile b/linux/atlassian/jira/7/7.6.13/Dockerfile index e174a3df8..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.13/Dockerfile +++ b/linux/atlassian/jira/7/7.6.13/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.13/Makefile b/linux/atlassian/jira/7/7.6.13/Makefile index 2720d6482..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.13/Makefile +++ b/linux/atlassian/jira/7/7.6.13/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.13 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.13/docker-compose.yml b/linux/atlassian/jira/7/7.6.13/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.14/.env b/linux/atlassian/jira/7/7.6.14/.env new file mode 100644 index 000000000..f7bc9e5c2 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.14/Dockerfile b/linux/atlassian/jira/7/7.6.14/Dockerfile index 55aa10be3..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.14/Dockerfile +++ b/linux/atlassian/jira/7/7.6.14/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.14/Makefile b/linux/atlassian/jira/7/7.6.14/Makefile index bc18cc2a6..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.14/Makefile +++ b/linux/atlassian/jira/7/7.6.14/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.14 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.14/docker-compose.yml b/linux/atlassian/jira/7/7.6.14/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.15/.env b/linux/atlassian/jira/7/7.6.15/.env new file mode 100644 index 000000000..804065859 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.15/Dockerfile b/linux/atlassian/jira/7/7.6.15/Dockerfile index 2aea85a3d..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.15/Dockerfile +++ b/linux/atlassian/jira/7/7.6.15/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.15/Makefile b/linux/atlassian/jira/7/7.6.15/Makefile index de0914463..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.15/Makefile +++ b/linux/atlassian/jira/7/7.6.15/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.15 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.15/docker-compose.yml b/linux/atlassian/jira/7/7.6.15/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.16/.env b/linux/atlassian/jira/7/7.6.16/.env new file mode 100644 index 000000000..f8c0c9156 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.16/Dockerfile b/linux/atlassian/jira/7/7.6.16/Dockerfile index 2cdb83881..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.16/Dockerfile +++ b/linux/atlassian/jira/7/7.6.16/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.16/Makefile b/linux/atlassian/jira/7/7.6.16/Makefile index 53a9333f0..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.16/Makefile +++ b/linux/atlassian/jira/7/7.6.16/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.16 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.16/docker-compose.yml b/linux/atlassian/jira/7/7.6.16/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.17/.env b/linux/atlassian/jira/7/7.6.17/.env new file mode 100644 index 000000000..ea8156ea6 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.17/Dockerfile b/linux/atlassian/jira/7/7.6.17/Dockerfile index e12c6532f..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.17/Dockerfile +++ b/linux/atlassian/jira/7/7.6.17/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.17/Makefile b/linux/atlassian/jira/7/7.6.17/Makefile index 456033f2d..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.17/Makefile +++ b/linux/atlassian/jira/7/7.6.17/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.17 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.17/docker-compose.yml b/linux/atlassian/jira/7/7.6.17/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.2/.env b/linux/atlassian/jira/7/7.6.2/.env new file mode 100644 index 000000000..64708172f --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.2/Dockerfile b/linux/atlassian/jira/7/7.6.2/Dockerfile index 8d6fc9d86..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.2/Dockerfile +++ b/linux/atlassian/jira/7/7.6.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.2/Makefile b/linux/atlassian/jira/7/7.6.2/Makefile index d4e074a42..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.2/Makefile +++ b/linux/atlassian/jira/7/7.6.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.2/docker-compose.yml b/linux/atlassian/jira/7/7.6.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.3/.env b/linux/atlassian/jira/7/7.6.3/.env new file mode 100644 index 000000000..0408a1947 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.3/Dockerfile b/linux/atlassian/jira/7/7.6.3/Dockerfile index b106ce402..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.3/Dockerfile +++ b/linux/atlassian/jira/7/7.6.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.3/Makefile b/linux/atlassian/jira/7/7.6.3/Makefile index 7a8c98ffb..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.3/Makefile +++ b/linux/atlassian/jira/7/7.6.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.3/docker-compose.yml b/linux/atlassian/jira/7/7.6.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.4/.env b/linux/atlassian/jira/7/7.6.4/.env new file mode 100644 index 000000000..936089cd8 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.4/Dockerfile b/linux/atlassian/jira/7/7.6.4/Dockerfile index 66aa5c5f3..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.4/Dockerfile +++ b/linux/atlassian/jira/7/7.6.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.4/Makefile b/linux/atlassian/jira/7/7.6.4/Makefile index 6396d95c3..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.4/Makefile +++ b/linux/atlassian/jira/7/7.6.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.4/docker-compose.yml b/linux/atlassian/jira/7/7.6.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.6/.env b/linux/atlassian/jira/7/7.6.6/.env new file mode 100644 index 000000000..5bfa71a33 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.6/Dockerfile b/linux/atlassian/jira/7/7.6.6/Dockerfile index 2041a4e0e..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.6/Dockerfile +++ b/linux/atlassian/jira/7/7.6.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.6/Makefile b/linux/atlassian/jira/7/7.6.6/Makefile index 258c78519..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.6/Makefile +++ b/linux/atlassian/jira/7/7.6.6/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.6 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.6/docker-compose.yml b/linux/atlassian/jira/7/7.6.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.7/.env b/linux/atlassian/jira/7/7.6.7/.env new file mode 100644 index 000000000..7fa016d23 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.7/Dockerfile b/linux/atlassian/jira/7/7.6.7/Dockerfile index 93e9070b7..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.7/Dockerfile +++ b/linux/atlassian/jira/7/7.6.7/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.7/Makefile b/linux/atlassian/jira/7/7.6.7/Makefile index b6dfcfec1..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.7/Makefile +++ b/linux/atlassian/jira/7/7.6.7/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.7 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.7/docker-compose.yml b/linux/atlassian/jira/7/7.6.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.8/.env b/linux/atlassian/jira/7/7.6.8/.env new file mode 100644 index 000000000..561aacc06 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.8/Dockerfile b/linux/atlassian/jira/7/7.6.8/Dockerfile index f7ec54037..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.8/Dockerfile +++ b/linux/atlassian/jira/7/7.6.8/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.8/Makefile b/linux/atlassian/jira/7/7.6.8/Makefile index d4dbf81e3..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.8/Makefile +++ b/linux/atlassian/jira/7/7.6.8/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.8 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.8/docker-compose.yml b/linux/atlassian/jira/7/7.6.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.6.9/.env b/linux/atlassian/jira/7/7.6.9/.env new file mode 100644 index 000000000..fc3d42aab --- /dev/null +++ b/linux/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/atlassian/jira/7/7.6.9/Dockerfile b/linux/atlassian/jira/7/7.6.9/Dockerfile index c838cc1c5..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.6.9/Dockerfile +++ b/linux/atlassian/jira/7/7.6.9/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.6.9/Makefile b/linux/atlassian/jira/7/7.6.9/Makefile index 4d1b321ab..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.6.9/Makefile +++ b/linux/atlassian/jira/7/7.6.9/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.6.9 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.6.9/docker-compose.yml b/linux/atlassian/jira/7/7.6.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.7.0/.env b/linux/atlassian/jira/7/7.7.0/.env new file mode 100644 index 000000000..7033b7ec1 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.7.0/Dockerfile b/linux/atlassian/jira/7/7.7.0/Dockerfile index c28dc53fb..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.7.0/Dockerfile +++ b/linux/atlassian/jira/7/7.7.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.7.0/Makefile b/linux/atlassian/jira/7/7.7.0/Makefile index 484b63ebe..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.7.0/Makefile +++ b/linux/atlassian/jira/7/7.7.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.7.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.7.0/docker-compose.yml b/linux/atlassian/jira/7/7.7.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.7.1/.env b/linux/atlassian/jira/7/7.7.1/.env new file mode 100644 index 000000000..8bca52408 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.7.1/Dockerfile b/linux/atlassian/jira/7/7.7.1/Dockerfile index 7feb33a0b..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.7.1/Dockerfile +++ b/linux/atlassian/jira/7/7.7.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.7.1/Makefile b/linux/atlassian/jira/7/7.7.1/Makefile index f585f6150..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.7.1/Makefile +++ b/linux/atlassian/jira/7/7.7.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.7.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.7.1/docker-compose.yml b/linux/atlassian/jira/7/7.7.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.7.2/.env b/linux/atlassian/jira/7/7.7.2/.env new file mode 100644 index 000000000..73d28284f --- /dev/null +++ b/linux/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/atlassian/jira/7/7.7.2/Dockerfile b/linux/atlassian/jira/7/7.7.2/Dockerfile index 5a5c5d671..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.7.2/Dockerfile +++ b/linux/atlassian/jira/7/7.7.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.7.2/Makefile b/linux/atlassian/jira/7/7.7.2/Makefile index 33f32889d..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.7.2/Makefile +++ b/linux/atlassian/jira/7/7.7.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.7.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.7.2/docker-compose.yml b/linux/atlassian/jira/7/7.7.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.7.4/.env b/linux/atlassian/jira/7/7.7.4/.env new file mode 100644 index 000000000..c356493e2 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.7.4/Dockerfile b/linux/atlassian/jira/7/7.7.4/Dockerfile index 79346f86c..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.7.4/Dockerfile +++ b/linux/atlassian/jira/7/7.7.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.7.4/Makefile b/linux/atlassian/jira/7/7.7.4/Makefile index ec7c511d6..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.7.4/Makefile +++ b/linux/atlassian/jira/7/7.7.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.7.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.7.4/docker-compose.yml b/linux/atlassian/jira/7/7.7.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.8.0/.env b/linux/atlassian/jira/7/7.8.0/.env new file mode 100644 index 000000000..f41337f71 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.8.0/Dockerfile b/linux/atlassian/jira/7/7.8.0/Dockerfile index 02bca0b8f..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.8.0/Dockerfile +++ b/linux/atlassian/jira/7/7.8.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.8.0/Makefile b/linux/atlassian/jira/7/7.8.0/Makefile index a8c1c3708..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.8.0/Makefile +++ b/linux/atlassian/jira/7/7.8.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.8.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.8.0/docker-compose.yml b/linux/atlassian/jira/7/7.8.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.8.1/.env b/linux/atlassian/jira/7/7.8.1/.env new file mode 100644 index 000000000..2a764d9d1 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.8.1/Dockerfile b/linux/atlassian/jira/7/7.8.1/Dockerfile index 598aca639..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.8.1/Dockerfile +++ b/linux/atlassian/jira/7/7.8.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.8.1/Makefile b/linux/atlassian/jira/7/7.8.1/Makefile index 15a553644..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.8.1/Makefile +++ b/linux/atlassian/jira/7/7.8.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.8.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.8.1/docker-compose.yml b/linux/atlassian/jira/7/7.8.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.8.2/.env b/linux/atlassian/jira/7/7.8.2/.env new file mode 100644 index 000000000..8fa75646d --- /dev/null +++ b/linux/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/atlassian/jira/7/7.8.2/Dockerfile b/linux/atlassian/jira/7/7.8.2/Dockerfile index 9e8fb7dc4..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.8.2/Dockerfile +++ b/linux/atlassian/jira/7/7.8.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.8.2/Makefile b/linux/atlassian/jira/7/7.8.2/Makefile index 7d73c3eaf..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.8.2/Makefile +++ b/linux/atlassian/jira/7/7.8.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.8.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.8.2/docker-compose.yml b/linux/atlassian/jira/7/7.8.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.8.4/.env b/linux/atlassian/jira/7/7.8.4/.env new file mode 100644 index 000000000..a2879af27 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.8.4/Dockerfile b/linux/atlassian/jira/7/7.8.4/Dockerfile index 06cc20d95..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.8.4/Dockerfile +++ b/linux/atlassian/jira/7/7.8.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.8.4/Makefile b/linux/atlassian/jira/7/7.8.4/Makefile index 13d159ddc..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.8.4/Makefile +++ b/linux/atlassian/jira/7/7.8.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.8.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.8.4/docker-compose.yml b/linux/atlassian/jira/7/7.8.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.9.0/.env b/linux/atlassian/jira/7/7.9.0/.env new file mode 100644 index 000000000..f6b717ead --- /dev/null +++ b/linux/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/atlassian/jira/7/7.9.0/Dockerfile b/linux/atlassian/jira/7/7.9.0/Dockerfile index 3fcc0c8f1..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.9.0/Dockerfile +++ b/linux/atlassian/jira/7/7.9.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.9.0/Makefile b/linux/atlassian/jira/7/7.9.0/Makefile index 083bd154b..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.9.0/Makefile +++ b/linux/atlassian/jira/7/7.9.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.9.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.9.0/docker-compose.yml b/linux/atlassian/jira/7/7.9.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/7/7.9.2/.env b/linux/atlassian/jira/7/7.9.2/.env new file mode 100644 index 000000000..17ccd50c6 --- /dev/null +++ b/linux/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/atlassian/jira/7/7.9.2/Dockerfile b/linux/atlassian/jira/7/7.9.2/Dockerfile index ea4dd675b..b04d36d00 100644 --- a/linux/atlassian/jira/7/7.9.2/Dockerfile +++ b/linux/atlassian/jira/7/7.9.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/7/7.9.2/Makefile b/linux/atlassian/jira/7/7.9.2/Makefile index d16c74d5f..82c5a2de6 100644 --- a/linux/atlassian/jira/7/7.9.2/Makefile +++ b/linux/atlassian/jira/7/7.9.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:7.9.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/7/7.9.2/docker-compose.yml b/linux/atlassian/jira/7/7.9.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.0.0/.env b/linux/atlassian/jira/8/8.0.0/.env new file mode 100644 index 000000000..2b127f2ae --- /dev/null +++ b/linux/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/atlassian/jira/8/8.0.0/Dockerfile b/linux/atlassian/jira/8/8.0.0/Dockerfile index 98e94c6bc..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.0.0/Dockerfile +++ b/linux/atlassian/jira/8/8.0.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.0.0/Makefile b/linux/atlassian/jira/8/8.0.0/Makefile index ec734ea67..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.0.0/Makefile +++ b/linux/atlassian/jira/8/8.0.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.0.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.0.0/docker-compose.yml b/linux/atlassian/jira/8/8.0.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.0.2/.env b/linux/atlassian/jira/8/8.0.2/.env new file mode 100644 index 000000000..c09dca049 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.0.2/Dockerfile b/linux/atlassian/jira/8/8.0.2/Dockerfile index b4346797e..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.0.2/Dockerfile +++ b/linux/atlassian/jira/8/8.0.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.0.2/Makefile b/linux/atlassian/jira/8/8.0.2/Makefile index fd595c493..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.0.2/Makefile +++ b/linux/atlassian/jira/8/8.0.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.0.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.0.2/docker-compose.yml b/linux/atlassian/jira/8/8.0.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.0.3/.env b/linux/atlassian/jira/8/8.0.3/.env new file mode 100644 index 000000000..bc5b567ed --- /dev/null +++ b/linux/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/atlassian/jira/8/8.0.3/Dockerfile b/linux/atlassian/jira/8/8.0.3/Dockerfile index c96af7da2..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.0.3/Dockerfile +++ b/linux/atlassian/jira/8/8.0.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.0.3/Makefile b/linux/atlassian/jira/8/8.0.3/Makefile index af66b6115..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.0.3/Makefile +++ b/linux/atlassian/jira/8/8.0.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.0.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.0.3/docker-compose.yml b/linux/atlassian/jira/8/8.0.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.1.0/.env b/linux/atlassian/jira/8/8.1.0/.env new file mode 100644 index 000000000..c8ca5ef17 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.1.0/Dockerfile b/linux/atlassian/jira/8/8.1.0/Dockerfile index 60a5c20be..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.1.0/Dockerfile +++ b/linux/atlassian/jira/8/8.1.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.1.0/Makefile b/linux/atlassian/jira/8/8.1.0/Makefile index 77ebb66c5..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.1.0/Makefile +++ b/linux/atlassian/jira/8/8.1.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.1.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.1.0/docker-compose.yml b/linux/atlassian/jira/8/8.1.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.1.1/.env b/linux/atlassian/jira/8/8.1.1/.env new file mode 100644 index 000000000..c05ae07e1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.1.1/Dockerfile b/linux/atlassian/jira/8/8.1.1/Dockerfile index 3cbd9cb52..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.1.1/Dockerfile +++ b/linux/atlassian/jira/8/8.1.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.1.1/Makefile b/linux/atlassian/jira/8/8.1.1/Makefile index 3d9ae7851..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.1.1/Makefile +++ b/linux/atlassian/jira/8/8.1.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.1.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.1.1/docker-compose.yml b/linux/atlassian/jira/8/8.1.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.1.2/.env b/linux/atlassian/jira/8/8.1.2/.env new file mode 100644 index 000000000..7d604c1cc --- /dev/null +++ b/linux/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/atlassian/jira/8/8.1.2/Dockerfile b/linux/atlassian/jira/8/8.1.2/Dockerfile index 857d2cf23..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.1.2/Dockerfile +++ b/linux/atlassian/jira/8/8.1.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.1.2/Makefile b/linux/atlassian/jira/8/8.1.2/Makefile index 7c89625c5..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.1.2/Makefile +++ b/linux/atlassian/jira/8/8.1.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.1.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.1.2/docker-compose.yml b/linux/atlassian/jira/8/8.1.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.1.3/.env b/linux/atlassian/jira/8/8.1.3/.env new file mode 100644 index 000000000..9faf78da0 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.1.3/Dockerfile b/linux/atlassian/jira/8/8.1.3/Dockerfile index c38c5d398..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.1.3/Dockerfile +++ b/linux/atlassian/jira/8/8.1.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.1.3/Makefile b/linux/atlassian/jira/8/8.1.3/Makefile index 9115ebaf5..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.1.3/Makefile +++ b/linux/atlassian/jira/8/8.1.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.1.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.1.3/docker-compose.yml b/linux/atlassian/jira/8/8.1.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.10.0/.env b/linux/atlassian/jira/8/8.10.0/.env new file mode 100644 index 000000000..06545427b --- /dev/null +++ b/linux/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/atlassian/jira/8/8.10.0/Dockerfile b/linux/atlassian/jira/8/8.10.0/Dockerfile index 0c0da3f30..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.10.0/Dockerfile +++ b/linux/atlassian/jira/8/8.10.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.10.0/Makefile b/linux/atlassian/jira/8/8.10.0/Makefile index 8a1664cc8..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.10.0/Makefile +++ b/linux/atlassian/jira/8/8.10.0/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.10.0 . - docker push epicmorg/jira:8.10.0 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.10.0/docker-compose.yml b/linux/atlassian/jira/8/8.10.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.10.1/.env b/linux/atlassian/jira/8/8.10.1/.env new file mode 100644 index 000000000..f0303efa3 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.10.1/Dockerfile b/linux/atlassian/jira/8/8.10.1/Dockerfile index 1d1caa3dd..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.10.1/Dockerfile +++ b/linux/atlassian/jira/8/8.10.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.10.1/Makefile b/linux/atlassian/jira/8/8.10.1/Makefile index 9d19a683c..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.10.1/Makefile +++ b/linux/atlassian/jira/8/8.10.1/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.10.1 . - docker push epicmorg/jira:8.10.1 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.10.1/docker-compose.yml b/linux/atlassian/jira/8/8.10.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.11.0/.env b/linux/atlassian/jira/8/8.11.0/.env new file mode 100644 index 000000000..bc552542b --- /dev/null +++ b/linux/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/atlassian/jira/8/8.11.0/Dockerfile b/linux/atlassian/jira/8/8.11.0/Dockerfile index ec0717a0a..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.11.0/Dockerfile +++ b/linux/atlassian/jira/8/8.11.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.11.0/Makefile b/linux/atlassian/jira/8/8.11.0/Makefile index 223d48205..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.11.0/Makefile +++ b/linux/atlassian/jira/8/8.11.0/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.11.0 . - docker push epicmorg/jira:8.11.0 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.11.0/docker-compose.yml b/linux/atlassian/jira/8/8.11.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.11.1/.env b/linux/atlassian/jira/8/8.11.1/.env new file mode 100644 index 000000000..a0cc199e7 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.11.1/Dockerfile b/linux/atlassian/jira/8/8.11.1/Dockerfile index 7f4b03a70..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.11.1/Dockerfile +++ b/linux/atlassian/jira/8/8.11.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.11.1/Makefile b/linux/atlassian/jira/8/8.11.1/Makefile index d45d787ae..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.11.1/Makefile +++ b/linux/atlassian/jira/8/8.11.1/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.11.1 . - docker push epicmorg/jira:8.11.1 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.11.1/docker-compose.yml b/linux/atlassian/jira/8/8.11.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.12.0/.env b/linux/atlassian/jira/8/8.12.0/.env new file mode 100644 index 000000000..7d3cdd9f5 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.12.0/Dockerfile b/linux/atlassian/jira/8/8.12.0/Dockerfile index ec4db21c6..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.12.0/Dockerfile +++ b/linux/atlassian/jira/8/8.12.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.12.0/Makefile b/linux/atlassian/jira/8/8.12.0/Makefile index 16e4fa587..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.12.0/Makefile +++ b/linux/atlassian/jira/8/8.12.0/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.12.0 . - docker push epicmorg/jira:8.12.0 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.12.0/docker-compose.yml b/linux/atlassian/jira/8/8.12.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.12.1/.env b/linux/atlassian/jira/8/8.12.1/.env new file mode 100644 index 000000000..7b14469c4 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.12.1/Dockerfile b/linux/atlassian/jira/8/8.12.1/Dockerfile index 2dc9c95ab..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.12.1/Dockerfile +++ b/linux/atlassian/jira/8/8.12.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.12.1/Makefile b/linux/atlassian/jira/8/8.12.1/Makefile index 16e4fa587..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.12.1/Makefile +++ b/linux/atlassian/jira/8/8.12.1/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.12.0 . - docker push epicmorg/jira:8.12.0 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.12.1/docker-compose.yml b/linux/atlassian/jira/8/8.12.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.12.2/.env b/linux/atlassian/jira/8/8.12.2/.env new file mode 100644 index 000000000..af18966ef --- /dev/null +++ b/linux/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/atlassian/jira/8/8.12.2/Dockerfile b/linux/atlassian/jira/8/8.12.2/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.12.2/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.2/Makefile b/linux/atlassian/jira/8/8.12.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.12.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.12.2/docker-compose.yml b/linux/atlassian/jira/8/8.12.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.12.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/8/8.12.2/entrypoint.sh b/linux/atlassian/jira/8/8.12.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.12.3/.env b/linux/atlassian/jira/8/8.12.3/.env new file mode 100644 index 000000000..aadcec757 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.12.3/Dockerfile b/linux/atlassian/jira/8/8.12.3/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.12.3/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.3/Makefile b/linux/atlassian/jira/8/8.12.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.12.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.12.3/docker-compose.yml b/linux/atlassian/jira/8/8.12.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.12.3/entrypoint.sh b/linux/atlassian/jira/8/8.12.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.0/.env b/linux/atlassian/jira/8/8.13.0/.env new file mode 100644 index 000000000..1251e9fd0 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.0/Dockerfile b/linux/atlassian/jira/8/8.13.0/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.0/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13.0/Makefile b/linux/atlassian/jira/8/8.13.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.13.0/docker-compose.yml b/linux/atlassian/jira/8/8.13.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.0/entrypoint.sh b/linux/atlassian/jira/8/8.13.0/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.1/.env b/linux/atlassian/jira/8/8.13.1/.env new file mode 100644 index 000000000..d544e2056 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.1/Dockerfile b/linux/atlassian/jira/8/8.13.1/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.1/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13.1/Makefile b/linux/atlassian/jira/8/8.13.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.13.1/docker-compose.yml b/linux/atlassian/jira/8/8.13.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.1/entrypoint.sh b/linux/atlassian/jira/8/8.13.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.2/.env b/linux/atlassian/jira/8/8.13.2/.env new file mode 100644 index 000000000..27b7f82f8 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.2/Dockerfile b/linux/atlassian/jira/8/8.13.2/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.2/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13.2/Makefile b/linux/atlassian/jira/8/8.13.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.13.2/docker-compose.yml b/linux/atlassian/jira/8/8.13.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.2/entrypoint.sh b/linux/atlassian/jira/8/8.13.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.3/.env b/linux/atlassian/jira/8/8.13.3/.env new file mode 100644 index 000000000..f13de08c6 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.3/Dockerfile b/linux/atlassian/jira/8/8.13.3/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.3/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13.3/Makefile b/linux/atlassian/jira/8/8.13.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.13.3/docker-compose.yml b/linux/atlassian/jira/8/8.13.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.3/entrypoint.sh b/linux/atlassian/jira/8/8.13.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.4/.env b/linux/atlassian/jira/8/8.13.4/.env new file mode 100644 index 000000000..7223b5952 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.4/Dockerfile b/linux/atlassian/jira/8/8.13.4/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.4/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13.4/Makefile b/linux/atlassian/jira/8/8.13.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.13.4/docker-compose.yml b/linux/atlassian/jira/8/8.13.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.4/entrypoint.sh b/linux/atlassian/jira/8/8.13.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.5/.env b/linux/atlassian/jira/8/8.13.5/.env new file mode 100644 index 000000000..f98b530d3 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.5/Dockerfile b/linux/atlassian/jira/8/8.13.5/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.5/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13.5/Makefile b/linux/atlassian/jira/8/8.13.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.13.5/docker-compose.yml b/linux/atlassian/jira/8/8.13.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.5/entrypoint.sh b/linux/atlassian/jira/8/8.13.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.6/.env b/linux/atlassian/jira/8/8.13.6/.env new file mode 100644 index 000000000..0fa64c96b --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.6/Dockerfile b/linux/atlassian/jira/8/8.13.6/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.6/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13.6/Makefile b/linux/atlassian/jira/8/8.13.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.13.6/docker-compose.yml b/linux/atlassian/jira/8/8.13.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.6/entrypoint.sh b/linux/atlassian/jira/8/8.13.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.7/.env b/linux/atlassian/jira/8/8.13.7/.env new file mode 100644 index 000000000..aeb2619a7 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.7/Dockerfile b/linux/atlassian/jira/8/8.13.7/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.7/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13.7/Makefile b/linux/atlassian/jira/8/8.13.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.13.7/docker-compose.yml b/linux/atlassian/jira/8/8.13.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.13.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/8/8.13.7/entrypoint.sh b/linux/atlassian/jira/8/8.13.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.14.0/.env b/linux/atlassian/jira/8/8.14.0/.env new file mode 100644 index 000000000..a474275b4 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.14.0/Dockerfile b/linux/atlassian/jira/8/8.14.0/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.14.0/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.14.0/Makefile b/linux/atlassian/jira/8/8.14.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.14.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.14.0/docker-compose.yml b/linux/atlassian/jira/8/8.14.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.14.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/8/8.14.0/entrypoint.sh b/linux/atlassian/jira/8/8.14.0/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.14.1/.env b/linux/atlassian/jira/8/8.14.1/.env new file mode 100644 index 000000000..1fd499014 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.14.1/Dockerfile b/linux/atlassian/jira/8/8.14.1/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.14.1/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.14.1/Makefile b/linux/atlassian/jira/8/8.14.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.14.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.14.1/docker-compose.yml b/linux/atlassian/jira/8/8.14.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.14.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/8/8.14.1/entrypoint.sh b/linux/atlassian/jira/8/8.14.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.15.0/.env b/linux/atlassian/jira/8/8.15.0/.env new file mode 100644 index 000000000..b0d9a9932 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.15.0/Dockerfile b/linux/atlassian/jira/8/8.15.0/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.15.0/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.15.0/Makefile b/linux/atlassian/jira/8/8.15.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.15.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.15.0/docker-compose.yml b/linux/atlassian/jira/8/8.15.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.15.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/8/8.15.0/entrypoint.sh b/linux/atlassian/jira/8/8.15.0/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.15.1/.env b/linux/atlassian/jira/8/8.15.1/.env new file mode 100644 index 000000000..ed62260b1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.15.1/Dockerfile b/linux/atlassian/jira/8/8.15.1/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.15.1/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.15.1/Makefile b/linux/atlassian/jira/8/8.15.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.15.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.15.1/docker-compose.yml b/linux/atlassian/jira/8/8.15.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.15.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/8/8.15.1/entrypoint.sh b/linux/atlassian/jira/8/8.15.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.0/.env b/linux/atlassian/jira/8/8.16.0/.env new file mode 100644 index 000000000..8456f56fc --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.0/Dockerfile b/linux/atlassian/jira/8/8.16.0/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.16.0/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.16.0/Makefile b/linux/atlassian/jira/8/8.16.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.16.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.16.0/docker-compose.yml b/linux/atlassian/jira/8/8.16.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.16.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/8/8.16.0/entrypoint.sh b/linux/atlassian/jira/8/8.16.0/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.1/.env b/linux/atlassian/jira/8/8.16.1/.env new file mode 100644 index 000000000..f3b21a58c --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.1/Dockerfile b/linux/atlassian/jira/8/8.16.1/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.16.1/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.16.1/Makefile b/linux/atlassian/jira/8/8.16.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.16.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.16.1/docker-compose.yml b/linux/atlassian/jira/8/8.16.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.16.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/8/8.16.1/entrypoint.sh b/linux/atlassian/jira/8/8.16.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.17.0/.env b/linux/atlassian/jira/8/8.17.0/.env new file mode 100644 index 000000000..a127c6f7b --- /dev/null +++ b/linux/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/atlassian/jira/8/8.17.0/Dockerfile b/linux/atlassian/jira/8/8.17.0/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.17.0/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.17.0/Makefile b/linux/atlassian/jira/8/8.17.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.17.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.17.0/docker-compose.yml b/linux/atlassian/jira/8/8.17.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.17.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/8/8.17.0/entrypoint.sh b/linux/atlassian/jira/8/8.17.0/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.2.0/.env b/linux/atlassian/jira/8/8.2.0/.env new file mode 100644 index 000000000..8186fc65d --- /dev/null +++ b/linux/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/atlassian/jira/8/8.2.0/Dockerfile b/linux/atlassian/jira/8/8.2.0/Dockerfile index 53e0b84be..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.2.0/Dockerfile +++ b/linux/atlassian/jira/8/8.2.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.2.0/Makefile b/linux/atlassian/jira/8/8.2.0/Makefile index 6430df6d3..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.2.0/Makefile +++ b/linux/atlassian/jira/8/8.2.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.2.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.2.0/docker-compose.yml b/linux/atlassian/jira/8/8.2.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.2.1/.env b/linux/atlassian/jira/8/8.2.1/.env new file mode 100644 index 000000000..e4d9d560c --- /dev/null +++ b/linux/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/atlassian/jira/8/8.2.1/Dockerfile b/linux/atlassian/jira/8/8.2.1/Dockerfile index 2bcd39287..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.2.1/Dockerfile +++ b/linux/atlassian/jira/8/8.2.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.2.1/Makefile b/linux/atlassian/jira/8/8.2.1/Makefile index 20d6118ee..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.2.1/Makefile +++ b/linux/atlassian/jira/8/8.2.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.2.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.2.1/docker-compose.yml b/linux/atlassian/jira/8/8.2.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.2.2/.env b/linux/atlassian/jira/8/8.2.2/.env new file mode 100644 index 000000000..ecce21b1b --- /dev/null +++ b/linux/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/atlassian/jira/8/8.2.2/Dockerfile b/linux/atlassian/jira/8/8.2.2/Dockerfile index 1ad98368d..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.2.2/Dockerfile +++ b/linux/atlassian/jira/8/8.2.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.2.2/Makefile b/linux/atlassian/jira/8/8.2.2/Makefile index 4ed1126fa..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.2.2/Makefile +++ b/linux/atlassian/jira/8/8.2.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.2.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.2.2/docker-compose.yml b/linux/atlassian/jira/8/8.2.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.2.3/.env b/linux/atlassian/jira/8/8.2.3/.env new file mode 100644 index 000000000..b81ba31da --- /dev/null +++ b/linux/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/atlassian/jira/8/8.2.3/Dockerfile b/linux/atlassian/jira/8/8.2.3/Dockerfile index 7b22fae69..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.2.3/Dockerfile +++ b/linux/atlassian/jira/8/8.2.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.2.3/Makefile b/linux/atlassian/jira/8/8.2.3/Makefile index a0971b5ed..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.2.3/Makefile +++ b/linux/atlassian/jira/8/8.2.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.2.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.2.3/docker-compose.yml b/linux/atlassian/jira/8/8.2.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.2.4/.env b/linux/atlassian/jira/8/8.2.4/.env new file mode 100644 index 000000000..fb78ea238 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.2.4/Dockerfile b/linux/atlassian/jira/8/8.2.4/Dockerfile index bb0bf7d45..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.2.4/Dockerfile +++ b/linux/atlassian/jira/8/8.2.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.2.4/Makefile b/linux/atlassian/jira/8/8.2.4/Makefile index ecfb821c9..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.2.4/Makefile +++ b/linux/atlassian/jira/8/8.2.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.2.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.2.4/docker-compose.yml b/linux/atlassian/jira/8/8.2.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.2.5/.env b/linux/atlassian/jira/8/8.2.5/.env new file mode 100644 index 000000000..4cb26072f --- /dev/null +++ b/linux/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/atlassian/jira/8/8.2.5/Dockerfile b/linux/atlassian/jira/8/8.2.5/Dockerfile index 2f741b295..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.2.5/Dockerfile +++ b/linux/atlassian/jira/8/8.2.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.2.5/Makefile b/linux/atlassian/jira/8/8.2.5/Makefile index 3cbc72272..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.2.5/Makefile +++ b/linux/atlassian/jira/8/8.2.5/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.2.5 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.2.5/docker-compose.yml b/linux/atlassian/jira/8/8.2.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.2.6/.env b/linux/atlassian/jira/8/8.2.6/.env new file mode 100644 index 000000000..3f4cffe90 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.2.6/Dockerfile b/linux/atlassian/jira/8/8.2.6/Dockerfile index 6c52750a8..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.2.6/Dockerfile +++ b/linux/atlassian/jira/8/8.2.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.2.6/Makefile b/linux/atlassian/jira/8/8.2.6/Makefile index f4ed77086..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.2.6/Makefile +++ b/linux/atlassian/jira/8/8.2.6/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.2.6 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.2.6/docker-compose.yml b/linux/atlassian/jira/8/8.2.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.3.0/.env b/linux/atlassian/jira/8/8.3.0/.env new file mode 100644 index 000000000..0216992f4 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.3.0/Dockerfile b/linux/atlassian/jira/8/8.3.0/Dockerfile index 6918c3f1f..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.3.0/Dockerfile +++ b/linux/atlassian/jira/8/8.3.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.3.0/Makefile b/linux/atlassian/jira/8/8.3.0/Makefile index 72bad8d70..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.3.0/Makefile +++ b/linux/atlassian/jira/8/8.3.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.3.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.3.0/docker-compose.yml b/linux/atlassian/jira/8/8.3.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.3.1/.env b/linux/atlassian/jira/8/8.3.1/.env new file mode 100644 index 000000000..4138b3a7e --- /dev/null +++ b/linux/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/atlassian/jira/8/8.3.1/Dockerfile b/linux/atlassian/jira/8/8.3.1/Dockerfile index 45123d298..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.3.1/Dockerfile +++ b/linux/atlassian/jira/8/8.3.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.3.1/Makefile b/linux/atlassian/jira/8/8.3.1/Makefile index c2f6fb33a..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.3.1/Makefile +++ b/linux/atlassian/jira/8/8.3.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.3.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.3.1/docker-compose.yml b/linux/atlassian/jira/8/8.3.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.3.2/.env b/linux/atlassian/jira/8/8.3.2/.env new file mode 100644 index 000000000..45f038a20 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.3.2/Dockerfile b/linux/atlassian/jira/8/8.3.2/Dockerfile index 8ef1bc261..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.3.2/Dockerfile +++ b/linux/atlassian/jira/8/8.3.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.3.2/Makefile b/linux/atlassian/jira/8/8.3.2/Makefile index 172eec6e5..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.3.2/Makefile +++ b/linux/atlassian/jira/8/8.3.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.3.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.3.2/docker-compose.yml b/linux/atlassian/jira/8/8.3.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.3.3/.env b/linux/atlassian/jira/8/8.3.3/.env new file mode 100644 index 000000000..46646cbf0 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.3.3/Dockerfile b/linux/atlassian/jira/8/8.3.3/Dockerfile index 55ec899e1..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.3.3/Dockerfile +++ b/linux/atlassian/jira/8/8.3.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.3.3/Makefile b/linux/atlassian/jira/8/8.3.3/Makefile index 0adece15c..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.3.3/Makefile +++ b/linux/atlassian/jira/8/8.3.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.3.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.3.3/docker-compose.yml b/linux/atlassian/jira/8/8.3.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.3.4/.env b/linux/atlassian/jira/8/8.3.4/.env new file mode 100644 index 000000000..a5baa0514 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.3.4/Dockerfile b/linux/atlassian/jira/8/8.3.4/Dockerfile index 3bd48bf31..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.3.4/Dockerfile +++ b/linux/atlassian/jira/8/8.3.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.3.4/Makefile b/linux/atlassian/jira/8/8.3.4/Makefile index 574b3a88e..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.3.4/Makefile +++ b/linux/atlassian/jira/8/8.3.4/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.3.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.3.4/docker-compose.yml b/linux/atlassian/jira/8/8.3.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.3.5/.env b/linux/atlassian/jira/8/8.3.5/.env new file mode 100644 index 000000000..f074992fa --- /dev/null +++ b/linux/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/atlassian/jira/8/8.3.5/Dockerfile b/linux/atlassian/jira/8/8.3.5/Dockerfile index 6e2cdb970..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.3.5/Dockerfile +++ b/linux/atlassian/jira/8/8.3.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.3.5/Makefile b/linux/atlassian/jira/8/8.3.5/Makefile index b97785a03..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.3.5/Makefile +++ b/linux/atlassian/jira/8/8.3.5/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.3.5 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.3.5/docker-compose.yml b/linux/atlassian/jira/8/8.3.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.4.0/.env b/linux/atlassian/jira/8/8.4.0/.env new file mode 100644 index 000000000..24c141081 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.4.0/Dockerfile b/linux/atlassian/jira/8/8.4.0/Dockerfile index b4d523351..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.4.0/Dockerfile +++ b/linux/atlassian/jira/8/8.4.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.4.0/Makefile b/linux/atlassian/jira/8/8.4.0/Makefile index 67e871ef6..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.4.0/Makefile +++ b/linux/atlassian/jira/8/8.4.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.4.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.4.0/docker-compose.yml b/linux/atlassian/jira/8/8.4.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.4.1/.env b/linux/atlassian/jira/8/8.4.1/.env new file mode 100644 index 000000000..33a722aa9 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.4.1/Dockerfile b/linux/atlassian/jira/8/8.4.1/Dockerfile index 901adc69e..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.4.1/Dockerfile +++ b/linux/atlassian/jira/8/8.4.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.4.1/Makefile b/linux/atlassian/jira/8/8.4.1/Makefile index c17e33929..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.4.1/Makefile +++ b/linux/atlassian/jira/8/8.4.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.4.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.4.1/docker-compose.yml b/linux/atlassian/jira/8/8.4.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.4.2/.env b/linux/atlassian/jira/8/8.4.2/.env new file mode 100644 index 000000000..4958ef37d --- /dev/null +++ b/linux/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/atlassian/jira/8/8.4.2/Dockerfile b/linux/atlassian/jira/8/8.4.2/Dockerfile index 2497ee702..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.4.2/Dockerfile +++ b/linux/atlassian/jira/8/8.4.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.4.2/Makefile b/linux/atlassian/jira/8/8.4.2/Makefile index f306219ff..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.4.2/Makefile +++ b/linux/atlassian/jira/8/8.4.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.4.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.4.2/docker-compose.yml b/linux/atlassian/jira/8/8.4.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.4.3/.env b/linux/atlassian/jira/8/8.4.3/.env new file mode 100644 index 000000000..82c7a1734 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.4.3/Dockerfile b/linux/atlassian/jira/8/8.4.3/Dockerfile index 52f582346..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.4.3/Dockerfile +++ b/linux/atlassian/jira/8/8.4.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.4.3/Makefile b/linux/atlassian/jira/8/8.4.3/Makefile index e7fd13f05..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.4.3/Makefile +++ b/linux/atlassian/jira/8/8.4.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.4.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.4.3/docker-compose.yml b/linux/atlassian/jira/8/8.4.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.5.0/.env b/linux/atlassian/jira/8/8.5.0/.env new file mode 100644 index 000000000..0f523d9b4 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.0/Dockerfile b/linux/atlassian/jira/8/8.5.0/Dockerfile index 3899c4039..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.5.0/Dockerfile +++ b/linux/atlassian/jira/8/8.5.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.5.0/Makefile b/linux/atlassian/jira/8/8.5.0/Makefile index 54f206019..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.5.0/Makefile +++ b/linux/atlassian/jira/8/8.5.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.5.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.0/docker-compose.yml b/linux/atlassian/jira/8/8.5.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.5.1/.env b/linux/atlassian/jira/8/8.5.1/.env new file mode 100644 index 000000000..21a61a85b --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.1/Dockerfile b/linux/atlassian/jira/8/8.5.1/Dockerfile index b7aba9776..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.5.1/Dockerfile +++ b/linux/atlassian/jira/8/8.5.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.5.1/Makefile b/linux/atlassian/jira/8/8.5.1/Makefile index 128178b1b..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.5.1/Makefile +++ b/linux/atlassian/jira/8/8.5.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.5.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.1/docker-compose.yml b/linux/atlassian/jira/8/8.5.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.5.10/.env b/linux/atlassian/jira/8/8.5.10/.env new file mode 100644 index 000000000..3243ca5b4 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.10/Dockerfile b/linux/atlassian/jira/8/8.5.10/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.10/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.10/Makefile b/linux/atlassian/jira/8/8.5.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.10/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.10/docker-compose.yml b/linux/atlassian/jira/8/8.5.10/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.10/entrypoint.sh b/linux/atlassian/jira/8/8.5.10/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.11/.env b/linux/atlassian/jira/8/8.5.11/.env new file mode 100644 index 000000000..d3025f9e9 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.11/Dockerfile b/linux/atlassian/jira/8/8.5.11/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.11/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.11/Makefile b/linux/atlassian/jira/8/8.5.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.11/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.11/docker-compose.yml b/linux/atlassian/jira/8/8.5.11/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.11/entrypoint.sh b/linux/atlassian/jira/8/8.5.11/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.12/.env b/linux/atlassian/jira/8/8.5.12/.env new file mode 100644 index 000000000..ec8f898c3 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.12/Dockerfile b/linux/atlassian/jira/8/8.5.12/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.12/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.12/Makefile b/linux/atlassian/jira/8/8.5.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.12/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.12/docker-compose.yml b/linux/atlassian/jira/8/8.5.12/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.12/entrypoint.sh b/linux/atlassian/jira/8/8.5.12/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.13/.env b/linux/atlassian/jira/8/8.5.13/.env new file mode 100644 index 000000000..caff9188f --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.13/Dockerfile b/linux/atlassian/jira/8/8.5.13/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.13/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.13/Makefile b/linux/atlassian/jira/8/8.5.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.13/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.13/docker-compose.yml b/linux/atlassian/jira/8/8.5.13/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.13/entrypoint.sh b/linux/atlassian/jira/8/8.5.13/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.14/.env b/linux/atlassian/jira/8/8.5.14/.env new file mode 100644 index 000000000..45363ab48 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.14/Dockerfile b/linux/atlassian/jira/8/8.5.14/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.14/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.14/Makefile b/linux/atlassian/jira/8/8.5.14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.14/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.14/docker-compose.yml b/linux/atlassian/jira/8/8.5.14/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.14/entrypoint.sh b/linux/atlassian/jira/8/8.5.14/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.15/.env b/linux/atlassian/jira/8/8.5.15/.env new file mode 100644 index 000000000..7fc2bbf2c --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.15/Dockerfile b/linux/atlassian/jira/8/8.5.15/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.15/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.15/Makefile b/linux/atlassian/jira/8/8.5.15/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.15/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.15/docker-compose.yml b/linux/atlassian/jira/8/8.5.15/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.15/entrypoint.sh b/linux/atlassian/jira/8/8.5.15/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.2/.env b/linux/atlassian/jira/8/8.5.2/.env new file mode 100644 index 000000000..3bb8ec0a5 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.2/Dockerfile b/linux/atlassian/jira/8/8.5.2/Dockerfile index 4f9d13f41..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.5.2/Dockerfile +++ b/linux/atlassian/jira/8/8.5.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.5.2/Makefile b/linux/atlassian/jira/8/8.5.2/Makefile index c230d45b7..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.5.2/Makefile +++ b/linux/atlassian/jira/8/8.5.2/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.5.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.2/docker-compose.yml b/linux/atlassian/jira/8/8.5.2/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.5.3/.env b/linux/atlassian/jira/8/8.5.3/.env new file mode 100644 index 000000000..31cefc43f --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.3/Dockerfile b/linux/atlassian/jira/8/8.5.3/Dockerfile index 03d935dfa..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.5.3/Dockerfile +++ b/linux/atlassian/jira/8/8.5.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.5.3/Makefile b/linux/atlassian/jira/8/8.5.3/Makefile index 431d0ee96..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.5.3/Makefile +++ b/linux/atlassian/jira/8/8.5.3/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.5.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.3/docker-compose.yml b/linux/atlassian/jira/8/8.5.3/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.4/.env b/linux/atlassian/jira/8/8.5.4/.env new file mode 100644 index 000000000..df5447f55 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.4/Dockerfile b/linux/atlassian/jira/8/8.5.4/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.4/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.4/Makefile b/linux/atlassian/jira/8/8.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.4/docker-compose.yml b/linux/atlassian/jira/8/8.5.4/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.4/entrypoint.sh b/linux/atlassian/jira/8/8.5.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.5/.env b/linux/atlassian/jira/8/8.5.5/.env new file mode 100644 index 000000000..146fc224e --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.5/Dockerfile b/linux/atlassian/jira/8/8.5.5/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.5/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.5/Makefile b/linux/atlassian/jira/8/8.5.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.5/docker-compose.yml b/linux/atlassian/jira/8/8.5.5/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.5/entrypoint.sh b/linux/atlassian/jira/8/8.5.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.6/.env b/linux/atlassian/jira/8/8.5.6/.env new file mode 100644 index 000000000..ebeba348f --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.6/Dockerfile b/linux/atlassian/jira/8/8.5.6/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.6/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.6/Makefile b/linux/atlassian/jira/8/8.5.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.6/docker-compose.yml b/linux/atlassian/jira/8/8.5.6/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.6/entrypoint.sh b/linux/atlassian/jira/8/8.5.6/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.7/.env b/linux/atlassian/jira/8/8.5.7/.env new file mode 100644 index 000000000..6ef4a2bf2 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.7/Dockerfile b/linux/atlassian/jira/8/8.5.7/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.7/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.7/Makefile b/linux/atlassian/jira/8/8.5.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.7/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.7/docker-compose.yml b/linux/atlassian/jira/8/8.5.7/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.7/entrypoint.sh b/linux/atlassian/jira/8/8.5.7/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.8/.env b/linux/atlassian/jira/8/8.5.8/.env new file mode 100644 index 000000000..f7dc343a8 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.8/Dockerfile b/linux/atlassian/jira/8/8.5.8/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.8/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.8/Makefile b/linux/atlassian/jira/8/8.5.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.8/docker-compose.yml b/linux/atlassian/jira/8/8.5.8/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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/8/8.5.8/entrypoint.sh b/linux/atlassian/jira/8/8.5.8/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.9/.env b/linux/atlassian/jira/8/8.5.9/.env new file mode 100644 index 000000000..43b6cb5de --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.9/Dockerfile b/linux/atlassian/jira/8/8.5.9/Dockerfile new file mode 100644 index 000000000..b04d36d00 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.9/Dockerfile @@ -0,0 +1,50 @@ +FROM epicmorg/prod:jdk8 +LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org" +ARG DEBIAN_FRONTEND=noninteractive + +################################################################## +# ARGuments +################################################################## + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + + +################################################################## +# Setup +################################################################## +ENV RUN_USER daemon +ENV RUN_GROUP daemon + +# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files +ENV JIRA_HOME /var/atlassian/application-data/jira +ENV JIRA_INSTALL_DIR /opt/atlassian/jira + +VOLUME ["${JIRA_HOME}"] +WORKDIR $JIRA_HOME + +# Expose HTTP port +EXPOSE 8080 + +################################################################## +# Installing +################################################################## +RUN mkdir -p ${JIRA_INSTALL_DIR} \ + && curl -L ${DOWNLOAD_URL} | tar -xz --strip-components=1 -C "$JIRA_INSTALL_DIR" \ + && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ + && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ + && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ + && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ + + update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ + apt clean -y && \ + apt autoclean -y && \ + rm -rfv /var/lib/apt/lists/* && \ + rm -rfv /var/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.9/Makefile b/linux/atlassian/jira/8/8.5.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.9/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.9/docker-compose.yml b/linux/atlassian/jira/8/8.5.9/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.5.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.5.9/entrypoint.sh b/linux/atlassian/jira/8/8.5.9/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.6.0/.env b/linux/atlassian/jira/8/8.6.0/.env new file mode 100644 index 000000000..6dab47be7 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.6.0/Dockerfile b/linux/atlassian/jira/8/8.6.0/Dockerfile index 94f8835dc..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.6.0/Dockerfile +++ b/linux/atlassian/jira/8/8.6.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.6.0/Makefile b/linux/atlassian/jira/8/8.6.0/Makefile index 3e5773d79..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.6.0/Makefile +++ b/linux/atlassian/jira/8/8.6.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.6.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.6.0/docker-compose.yml b/linux/atlassian/jira/8/8.6.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.6.1/.env b/linux/atlassian/jira/8/8.6.1/.env new file mode 100644 index 000000000..edda59f4d --- /dev/null +++ b/linux/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/atlassian/jira/8/8.6.1/Dockerfile b/linux/atlassian/jira/8/8.6.1/Dockerfile index 947578d9a..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.6.1/Dockerfile +++ b/linux/atlassian/jira/8/8.6.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.6.1/Makefile b/linux/atlassian/jira/8/8.6.1/Makefile index e4bb61905..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.6.1/Makefile +++ b/linux/atlassian/jira/8/8.6.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.6.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.6.1/docker-compose.yml b/linux/atlassian/jira/8/8.6.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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/8/8.7.0/.env b/linux/atlassian/jira/8/8.7.0/.env new file mode 100644 index 000000000..ce46988d9 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.7.0/Dockerfile b/linux/atlassian/jira/8/8.7.0/Dockerfile index 7fd6d5251..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.7.0/Dockerfile +++ b/linux/atlassian/jira/8/8.7.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.7.0/Makefile b/linux/atlassian/jira/8/8.7.0/Makefile index c11f144f4..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.7.0/Makefile +++ b/linux/atlassian/jira/8/8.7.0/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.7.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.7.0/docker-compose.yml b/linux/atlassian/jira/8/8.7.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.7.1/.env b/linux/atlassian/jira/8/8.7.1/.env new file mode 100644 index 000000000..f01c054dd --- /dev/null +++ b/linux/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/atlassian/jira/8/8.7.1/Dockerfile b/linux/atlassian/jira/8/8.7.1/Dockerfile index 9460cf4cf..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.7.1/Dockerfile +++ b/linux/atlassian/jira/8/8.7.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.7.1/Makefile b/linux/atlassian/jira/8/8.7.1/Makefile index cc8c8ad31..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.7.1/Makefile +++ b/linux/atlassian/jira/8/8.7.1/Makefile @@ -1,4 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.7.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.7.1/docker-compose.yml b/linux/atlassian/jira/8/8.7.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.8.0/.env b/linux/atlassian/jira/8/8.8.0/.env new file mode 100644 index 000000000..b03224376 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.8.0/Dockerfile b/linux/atlassian/jira/8/8.8.0/Dockerfile index 96c25c627..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.8.0/Dockerfile +++ b/linux/atlassian/jira/8/8.8.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.8.0/Makefile b/linux/atlassian/jira/8/8.8.0/Makefile index 461ea8958..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.8.0/Makefile +++ b/linux/atlassian/jira/8/8.8.0/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.8.0 . - docker push epicmorg/jira:8.8.0 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.8.0/docker-compose.yml b/linux/atlassian/jira/8/8.8.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.8.1/.env b/linux/atlassian/jira/8/8.8.1/.env new file mode 100644 index 000000000..ffae5db84 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.8.1/Dockerfile b/linux/atlassian/jira/8/8.8.1/Dockerfile index 53e799ad5..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.8.1/Dockerfile +++ b/linux/atlassian/jira/8/8.8.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.8.1/Makefile b/linux/atlassian/jira/8/8.8.1/Makefile index d6531a3e1..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.8.1/Makefile +++ b/linux/atlassian/jira/8/8.8.1/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.8.1 . - docker push epicmorg/jira:8.8.1 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.8.1/docker-compose.yml b/linux/atlassian/jira/8/8.8.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.9.0/.env b/linux/atlassian/jira/8/8.9.0/.env new file mode 100644 index 000000000..e8c594a06 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.9.0/Dockerfile b/linux/atlassian/jira/8/8.9.0/Dockerfile index c147ed0bd..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.9.0/Dockerfile +++ b/linux/atlassian/jira/8/8.9.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.9.0/Makefile b/linux/atlassian/jira/8/8.9.0/Makefile index 83858496b..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.9.0/Makefile +++ b/linux/atlassian/jira/8/8.9.0/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.9.0 . - docker push epicmorg/jira:8.9.0 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.9.0/docker-compose.yml b/linux/atlassian/jira/8/8.9.0/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.9.1/.env b/linux/atlassian/jira/8/8.9.1/.env new file mode 100644 index 000000000..1b6d8995e --- /dev/null +++ b/linux/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/atlassian/jira/8/8.9.1/Dockerfile b/linux/atlassian/jira/8/8.9.1/Dockerfile index 18826bccf..b04d36d00 100644 --- a/linux/atlassian/jira/8/8.9.1/Dockerfile +++ b/linux/atlassian/jira/8/8.9.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/8/8.9.1/Makefile b/linux/atlassian/jira/8/8.9.1/Makefile index 41be07a4e..82c5a2de6 100644 --- a/linux/atlassian/jira/8/8.9.1/Makefile +++ b/linux/atlassian/jira/8/8.9.1/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira:8.9.1 . - docker push epicmorg/jira:8.9.1 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.9.1/docker-compose.yml b/linux/atlassian/jira/8/8.9.1/docker-compose.yml new file mode 100644 index 000000000..4269f77ac --- /dev/null +++ b/linux/atlassian/jira/8/8.9.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 From 139f8f73fa4f5bee427873d569817d5a9805b0c2 Mon Sep 17 00:00:00 2001 From: Odmin Date: Wed, 19 May 2021 00:56:22 +0300 Subject: [PATCH 010/144] chmox +x for *.sh --- bin/dotnet/data/jira/templates/5/entrypoint.sh | 0 bin/dotnet/data/jira/templates/6/entrypoint.sh | 0 bin/dotnet/data/jira/templates/7/entrypoint.sh | 0 bin/dotnet/data/jira/templates/8/entrypoint.sh | 0 linux/atlassian/jira/5/5.0.1/entrypoint.sh | 0 linux/atlassian/jira/5/5.0.2/entrypoint.sh | 0 linux/atlassian/jira/5/5.0.3/entrypoint.sh | 0 linux/atlassian/jira/5/5.0.4/entrypoint.sh | 0 linux/atlassian/jira/5/5.0.5/entrypoint.sh | 0 linux/atlassian/jira/5/5.0.6/entrypoint.sh | 0 linux/atlassian/jira/5/5.0.7/entrypoint.sh | 0 linux/atlassian/jira/5/5.0/entrypoint.sh | 0 linux/atlassian/jira/5/5.1.1/entrypoint.sh | 0 linux/atlassian/jira/5/5.1.2/entrypoint.sh | 0 linux/atlassian/jira/5/5.1.3/entrypoint.sh | 0 linux/atlassian/jira/5/5.1.4/entrypoint.sh | 0 linux/atlassian/jira/5/5.1.5/entrypoint.sh | 0 linux/atlassian/jira/5/5.1.6/entrypoint.sh | 0 linux/atlassian/jira/5/5.1.7/entrypoint.sh | 0 linux/atlassian/jira/5/5.1.8/entrypoint.sh | 0 linux/atlassian/jira/5/5.1/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.1/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.10/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.11/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.2/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.3/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.4.1/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.4/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.5/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.6/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.7/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.8/entrypoint.sh | 0 linux/atlassian/jira/5/5.2.9/entrypoint.sh | 0 linux/atlassian/jira/5/5.2/entrypoint.sh | 0 linux/atlassian/jira/6/6.0.1/entrypoint.sh | 0 linux/atlassian/jira/6/6.0.2/entrypoint.sh | 0 linux/atlassian/jira/6/6.0.3/entrypoint.sh | 0 linux/atlassian/jira/6/6.0.4/entrypoint.sh | 0 linux/atlassian/jira/6/6.0.5/entrypoint.sh | 0 linux/atlassian/jira/6/6.0.6/entrypoint.sh | 0 linux/atlassian/jira/6/6.0.7/entrypoint.sh | 0 linux/atlassian/jira/6/6.0.8/entrypoint.sh | 0 linux/atlassian/jira/6/6.0/entrypoint.sh | 0 linux/atlassian/jira/6/6.1.1/entrypoint.sh | 0 linux/atlassian/jira/6/6.1.2/entrypoint.sh | 0 linux/atlassian/jira/6/6.1.3/entrypoint.sh | 0 linux/atlassian/jira/6/6.1.4/entrypoint.sh | 0 linux/atlassian/jira/6/6.1.5/entrypoint.sh | 0 linux/atlassian/jira/6/6.1.6/entrypoint.sh | 0 linux/atlassian/jira/6/6.1.7/entrypoint.sh | 0 linux/atlassian/jira/6/6.1.8/entrypoint.sh | 0 linux/atlassian/jira/6/6.1.9/entrypoint.sh | 0 linux/atlassian/jira/6/6.1/entrypoint.sh | 0 linux/atlassian/jira/6/6.2.1/entrypoint.sh | 0 linux/atlassian/jira/6/6.2.2/entrypoint.sh | 0 linux/atlassian/jira/6/6.2.3/entrypoint.sh | 0 linux/atlassian/jira/6/6.2.4/entrypoint.sh | 0 linux/atlassian/jira/6/6.2.5/entrypoint.sh | 0 linux/atlassian/jira/6/6.2.6/entrypoint.sh | 0 linux/atlassian/jira/6/6.2.7/entrypoint.sh | 0 linux/atlassian/jira/6/6.2/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.1/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.10/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.11/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.12/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.13/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.14/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.3/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.4/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.5/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.6/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.7/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.8/entrypoint.sh | 0 linux/atlassian/jira/6/6.3.9/entrypoint.sh | 0 linux/atlassian/jira/6/6.3/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.1/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.10/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.11/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.12/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.13/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.2/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.3/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.4/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.5/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.6/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.7/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.8/entrypoint.sh | 0 linux/atlassian/jira/6/6.4.9/entrypoint.sh | 0 linux/atlassian/jira/6/6.4/entrypoint.sh | 0 linux/atlassian/jira/7/7.13.14/entrypoint.sh | 0 linux/atlassian/jira/7/7.13.15/entrypoint.sh | 0 linux/atlassian/jira/7/7.13.16/entrypoint.sh | 0 linux/atlassian/jira/7/7.13.17/entrypoint.sh | 0 linux/atlassian/jira/7/7.13.18/entrypoint.sh | 0 linux/atlassian/jira/8/8.12.2/entrypoint.sh | 0 linux/atlassian/jira/8/8.12.3/entrypoint.sh | 0 linux/atlassian/jira/8/8.13.0/entrypoint.sh | 0 linux/atlassian/jira/8/8.13.1/entrypoint.sh | 0 linux/atlassian/jira/8/8.13.2/entrypoint.sh | 0 linux/atlassian/jira/8/8.13.3/entrypoint.sh | 0 linux/atlassian/jira/8/8.13.4/entrypoint.sh | 0 linux/atlassian/jira/8/8.13.5/entrypoint.sh | 0 linux/atlassian/jira/8/8.13.6/entrypoint.sh | 0 linux/atlassian/jira/8/8.13.7/entrypoint.sh | 0 linux/atlassian/jira/8/8.14.0/entrypoint.sh | 0 linux/atlassian/jira/8/8.14.1/entrypoint.sh | 0 linux/atlassian/jira/8/8.15.0/entrypoint.sh | 0 linux/atlassian/jira/8/8.15.1/entrypoint.sh | 0 linux/atlassian/jira/8/8.16.0/entrypoint.sh | 0 linux/atlassian/jira/8/8.16.1/entrypoint.sh | 0 linux/atlassian/jira/8/8.17.0/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.10/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.11/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.12/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.13/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.14/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.15/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.4/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.5/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.6/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.7/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.8/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.9/entrypoint.sh | 0 123 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 bin/dotnet/data/jira/templates/5/entrypoint.sh mode change 100644 => 100755 bin/dotnet/data/jira/templates/6/entrypoint.sh mode change 100644 => 100755 bin/dotnet/data/jira/templates/7/entrypoint.sh mode change 100644 => 100755 bin/dotnet/data/jira/templates/8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.0.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.0.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.0.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.0.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.0.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.0.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.0.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.1.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.1.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.1.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.1.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.1.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.1.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.1.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.1.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.10/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.11/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.4.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2.9/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/5/5.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.0.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.0.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.0.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.0.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.0.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.0.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.0.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.0.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1.9/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.2.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.2.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.2.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.2.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.2.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.2.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.2.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.10/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.11/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.12/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.13/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.14/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3.9/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.10/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.11/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.12/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.13/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4.9/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/6/6.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/7/7.13.14/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/7/7.13.15/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/7/7.13.16/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/7/7.13.17/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/7/7.13.18/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.12.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.12.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.13.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.13.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.13.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.13.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.13.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.13.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.13.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.13.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.14.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.14.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.15.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.15.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.16.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.16.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.17.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.10/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.11/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.12/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.13/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.14/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.15/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.9/entrypoint.sh diff --git a/bin/dotnet/data/jira/templates/5/entrypoint.sh b/bin/dotnet/data/jira/templates/5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/bin/dotnet/data/jira/templates/6/entrypoint.sh b/bin/dotnet/data/jira/templates/6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/bin/dotnet/data/jira/templates/7/entrypoint.sh b/bin/dotnet/data/jira/templates/7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/bin/dotnet/data/jira/templates/8/entrypoint.sh b/bin/dotnet/data/jira/templates/8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.0.1/entrypoint.sh b/linux/atlassian/jira/5/5.0.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.0.2/entrypoint.sh b/linux/atlassian/jira/5/5.0.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.0.3/entrypoint.sh b/linux/atlassian/jira/5/5.0.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.0.4/entrypoint.sh b/linux/atlassian/jira/5/5.0.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.0.5/entrypoint.sh b/linux/atlassian/jira/5/5.0.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.0.6/entrypoint.sh b/linux/atlassian/jira/5/5.0.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.0.7/entrypoint.sh b/linux/atlassian/jira/5/5.0.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.0/entrypoint.sh b/linux/atlassian/jira/5/5.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.1.1/entrypoint.sh b/linux/atlassian/jira/5/5.1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.1.2/entrypoint.sh b/linux/atlassian/jira/5/5.1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.1.3/entrypoint.sh b/linux/atlassian/jira/5/5.1.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.1.4/entrypoint.sh b/linux/atlassian/jira/5/5.1.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.1.5/entrypoint.sh b/linux/atlassian/jira/5/5.1.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.1.6/entrypoint.sh b/linux/atlassian/jira/5/5.1.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.1.7/entrypoint.sh b/linux/atlassian/jira/5/5.1.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.1.8/entrypoint.sh b/linux/atlassian/jira/5/5.1.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.1/entrypoint.sh b/linux/atlassian/jira/5/5.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.1/entrypoint.sh b/linux/atlassian/jira/5/5.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.10/entrypoint.sh b/linux/atlassian/jira/5/5.2.10/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.11/entrypoint.sh b/linux/atlassian/jira/5/5.2.11/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.2/entrypoint.sh b/linux/atlassian/jira/5/5.2.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.3/entrypoint.sh b/linux/atlassian/jira/5/5.2.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.4.1/entrypoint.sh b/linux/atlassian/jira/5/5.2.4.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.4/entrypoint.sh b/linux/atlassian/jira/5/5.2.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.5/entrypoint.sh b/linux/atlassian/jira/5/5.2.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.6/entrypoint.sh b/linux/atlassian/jira/5/5.2.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.7/entrypoint.sh b/linux/atlassian/jira/5/5.2.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.8/entrypoint.sh b/linux/atlassian/jira/5/5.2.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2.9/entrypoint.sh b/linux/atlassian/jira/5/5.2.9/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/5/5.2/entrypoint.sh b/linux/atlassian/jira/5/5.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.0.1/entrypoint.sh b/linux/atlassian/jira/6/6.0.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.0.2/entrypoint.sh b/linux/atlassian/jira/6/6.0.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.0.3/entrypoint.sh b/linux/atlassian/jira/6/6.0.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.0.4/entrypoint.sh b/linux/atlassian/jira/6/6.0.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.0.5/entrypoint.sh b/linux/atlassian/jira/6/6.0.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.0.6/entrypoint.sh b/linux/atlassian/jira/6/6.0.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.0.7/entrypoint.sh b/linux/atlassian/jira/6/6.0.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.0.8/entrypoint.sh b/linux/atlassian/jira/6/6.0.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.0/entrypoint.sh b/linux/atlassian/jira/6/6.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1.1/entrypoint.sh b/linux/atlassian/jira/6/6.1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1.2/entrypoint.sh b/linux/atlassian/jira/6/6.1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1.3/entrypoint.sh b/linux/atlassian/jira/6/6.1.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1.4/entrypoint.sh b/linux/atlassian/jira/6/6.1.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1.5/entrypoint.sh b/linux/atlassian/jira/6/6.1.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1.6/entrypoint.sh b/linux/atlassian/jira/6/6.1.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1.7/entrypoint.sh b/linux/atlassian/jira/6/6.1.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1.8/entrypoint.sh b/linux/atlassian/jira/6/6.1.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1.9/entrypoint.sh b/linux/atlassian/jira/6/6.1.9/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.1/entrypoint.sh b/linux/atlassian/jira/6/6.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.2.1/entrypoint.sh b/linux/atlassian/jira/6/6.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.2.2/entrypoint.sh b/linux/atlassian/jira/6/6.2.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.2.3/entrypoint.sh b/linux/atlassian/jira/6/6.2.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.2.4/entrypoint.sh b/linux/atlassian/jira/6/6.2.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.2.5/entrypoint.sh b/linux/atlassian/jira/6/6.2.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.2.6/entrypoint.sh b/linux/atlassian/jira/6/6.2.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.2.7/entrypoint.sh b/linux/atlassian/jira/6/6.2.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.2/entrypoint.sh b/linux/atlassian/jira/6/6.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.1/entrypoint.sh b/linux/atlassian/jira/6/6.3.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.10/entrypoint.sh b/linux/atlassian/jira/6/6.3.10/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.11/entrypoint.sh b/linux/atlassian/jira/6/6.3.11/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.12/entrypoint.sh b/linux/atlassian/jira/6/6.3.12/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.13/entrypoint.sh b/linux/atlassian/jira/6/6.3.13/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.14/entrypoint.sh b/linux/atlassian/jira/6/6.3.14/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.3/entrypoint.sh b/linux/atlassian/jira/6/6.3.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.4/entrypoint.sh b/linux/atlassian/jira/6/6.3.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.5/entrypoint.sh b/linux/atlassian/jira/6/6.3.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.6/entrypoint.sh b/linux/atlassian/jira/6/6.3.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.7/entrypoint.sh b/linux/atlassian/jira/6/6.3.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.8/entrypoint.sh b/linux/atlassian/jira/6/6.3.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3.9/entrypoint.sh b/linux/atlassian/jira/6/6.3.9/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.3/entrypoint.sh b/linux/atlassian/jira/6/6.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.1/entrypoint.sh b/linux/atlassian/jira/6/6.4.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.10/entrypoint.sh b/linux/atlassian/jira/6/6.4.10/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.11/entrypoint.sh b/linux/atlassian/jira/6/6.4.11/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.12/entrypoint.sh b/linux/atlassian/jira/6/6.4.12/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.13/entrypoint.sh b/linux/atlassian/jira/6/6.4.13/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.2/entrypoint.sh b/linux/atlassian/jira/6/6.4.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.3/entrypoint.sh b/linux/atlassian/jira/6/6.4.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.4/entrypoint.sh b/linux/atlassian/jira/6/6.4.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.5/entrypoint.sh b/linux/atlassian/jira/6/6.4.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.6/entrypoint.sh b/linux/atlassian/jira/6/6.4.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.7/entrypoint.sh b/linux/atlassian/jira/6/6.4.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.8/entrypoint.sh b/linux/atlassian/jira/6/6.4.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4.9/entrypoint.sh b/linux/atlassian/jira/6/6.4.9/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/6/6.4/entrypoint.sh b/linux/atlassian/jira/6/6.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/7/7.13.14/entrypoint.sh b/linux/atlassian/jira/7/7.13.14/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/7/7.13.15/entrypoint.sh b/linux/atlassian/jira/7/7.13.15/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/7/7.13.16/entrypoint.sh b/linux/atlassian/jira/7/7.13.16/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/7/7.13.17/entrypoint.sh b/linux/atlassian/jira/7/7.13.17/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/7/7.13.18/entrypoint.sh b/linux/atlassian/jira/7/7.13.18/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.12.2/entrypoint.sh b/linux/atlassian/jira/8/8.12.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.12.3/entrypoint.sh b/linux/atlassian/jira/8/8.12.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.13.0/entrypoint.sh b/linux/atlassian/jira/8/8.13.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.13.1/entrypoint.sh b/linux/atlassian/jira/8/8.13.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.13.2/entrypoint.sh b/linux/atlassian/jira/8/8.13.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.13.3/entrypoint.sh b/linux/atlassian/jira/8/8.13.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.13.4/entrypoint.sh b/linux/atlassian/jira/8/8.13.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.13.5/entrypoint.sh b/linux/atlassian/jira/8/8.13.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.13.6/entrypoint.sh b/linux/atlassian/jira/8/8.13.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.13.7/entrypoint.sh b/linux/atlassian/jira/8/8.13.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.14.0/entrypoint.sh b/linux/atlassian/jira/8/8.14.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.14.1/entrypoint.sh b/linux/atlassian/jira/8/8.14.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.15.0/entrypoint.sh b/linux/atlassian/jira/8/8.15.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.15.1/entrypoint.sh b/linux/atlassian/jira/8/8.15.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.16.0/entrypoint.sh b/linux/atlassian/jira/8/8.16.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.16.1/entrypoint.sh b/linux/atlassian/jira/8/8.16.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.17.0/entrypoint.sh b/linux/atlassian/jira/8/8.17.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.10/entrypoint.sh b/linux/atlassian/jira/8/8.5.10/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.11/entrypoint.sh b/linux/atlassian/jira/8/8.5.11/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.12/entrypoint.sh b/linux/atlassian/jira/8/8.5.12/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.13/entrypoint.sh b/linux/atlassian/jira/8/8.5.13/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.14/entrypoint.sh b/linux/atlassian/jira/8/8.5.14/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.15/entrypoint.sh b/linux/atlassian/jira/8/8.5.15/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.4/entrypoint.sh b/linux/atlassian/jira/8/8.5.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.5/entrypoint.sh b/linux/atlassian/jira/8/8.5.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.6/entrypoint.sh b/linux/atlassian/jira/8/8.5.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.7/entrypoint.sh b/linux/atlassian/jira/8/8.5.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.8/entrypoint.sh b/linux/atlassian/jira/8/8.5.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.9/entrypoint.sh b/linux/atlassian/jira/8/8.5.9/entrypoint.sh old mode 100644 new mode 100755 From d6b092274d2e40cbae7a546ae6119f68aa6889fc Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 01:03:40 +0300 Subject: [PATCH 011/144] template fix --- bin/dotnet/data/jira/templates/5/Dockerfile | 1 - bin/dotnet/data/jira/templates/6/Dockerfile | 1 - bin/dotnet/data/jira/templates/7/Dockerfile | 1 - bin/dotnet/data/jira/templates/8/Dockerfile | 1 - 4 files changed, 4 deletions(-) diff --git a/bin/dotnet/data/jira/templates/5/Dockerfile b/bin/dotnet/data/jira/templates/5/Dockerfile index 04d21c08e..8eb3f5a1e 100644 --- a/bin/dotnet/data/jira/templates/5/Dockerfile +++ b/bin/dotnet/data/jira/templates/5/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/bin/dotnet/data/jira/templates/6/Dockerfile b/bin/dotnet/data/jira/templates/6/Dockerfile index 9d7304645..639b0b045 100644 --- a/bin/dotnet/data/jira/templates/6/Dockerfile +++ b/bin/dotnet/data/jira/templates/6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/bin/dotnet/data/jira/templates/7/Dockerfile b/bin/dotnet/data/jira/templates/7/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/bin/dotnet/data/jira/templates/7/Dockerfile +++ b/bin/dotnet/data/jira/templates/7/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/bin/dotnet/data/jira/templates/8/Dockerfile b/bin/dotnet/data/jira/templates/8/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/bin/dotnet/data/jira/templates/8/Dockerfile +++ b/bin/dotnet/data/jira/templates/8/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ From 76f00557a41ee3010ebd7c2d5ad5dd3415136285 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 01:13:44 +0300 Subject: [PATCH 012/144] template fix --- bin/dotnet/data/jira/templates/5/Dockerfile | 1 - bin/dotnet/data/jira/templates/6/Dockerfile | 1 - 2 files changed, 2 deletions(-) diff --git a/bin/dotnet/data/jira/templates/5/Dockerfile b/bin/dotnet/data/jira/templates/5/Dockerfile index 8eb3f5a1e..4817a899d 100644 --- a/bin/dotnet/data/jira/templates/5/Dockerfile +++ b/bin/dotnet/data/jira/templates/5/Dockerfile @@ -35,7 +35,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ diff --git a/bin/dotnet/data/jira/templates/6/Dockerfile b/bin/dotnet/data/jira/templates/6/Dockerfile index 639b0b045..2a1d2a7df 100644 --- a/bin/dotnet/data/jira/templates/6/Dockerfile +++ b/bin/dotnet/data/jira/templates/6/Dockerfile @@ -35,7 +35,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ From 603ddd27664e05b87ffc2190d352084f9a3a398a Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 01:17:28 +0300 Subject: [PATCH 013/144] Dockerfile fix --- linux/atlassian/jira/5/5.0.1/Dockerfile | 2 -- linux/atlassian/jira/5/5.0.2/Dockerfile | 2 -- linux/atlassian/jira/5/5.0.3/Dockerfile | 2 -- linux/atlassian/jira/5/5.0.4/Dockerfile | 2 -- linux/atlassian/jira/5/5.0.5/Dockerfile | 2 -- linux/atlassian/jira/5/5.0.6/Dockerfile | 2 -- linux/atlassian/jira/5/5.0.7/Dockerfile | 2 -- linux/atlassian/jira/5/5.0/Dockerfile | 2 -- linux/atlassian/jira/5/5.1.1/Dockerfile | 2 -- linux/atlassian/jira/5/5.1.2/Dockerfile | 2 -- linux/atlassian/jira/5/5.1.3/Dockerfile | 2 -- linux/atlassian/jira/5/5.1.4/Dockerfile | 2 -- linux/atlassian/jira/5/5.1.5/Dockerfile | 2 -- linux/atlassian/jira/5/5.1.6/Dockerfile | 2 -- linux/atlassian/jira/5/5.1.7/Dockerfile | 2 -- linux/atlassian/jira/5/5.1.8/Dockerfile | 2 -- linux/atlassian/jira/5/5.1/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.1/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.10/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.11/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.2/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.3/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.4.1/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.4/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.5/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.6/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.7/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.8/Dockerfile | 2 -- linux/atlassian/jira/5/5.2.9/Dockerfile | 2 -- linux/atlassian/jira/5/5.2/Dockerfile | 2 -- linux/atlassian/jira/6/6.0.1/Dockerfile | 2 -- linux/atlassian/jira/6/6.0.2/Dockerfile | 2 -- linux/atlassian/jira/6/6.0.3/Dockerfile | 2 -- linux/atlassian/jira/6/6.0.4/Dockerfile | 2 -- linux/atlassian/jira/6/6.0.5/Dockerfile | 2 -- linux/atlassian/jira/6/6.0.6/Dockerfile | 2 -- linux/atlassian/jira/6/6.0.7/Dockerfile | 2 -- linux/atlassian/jira/6/6.0.8/Dockerfile | 2 -- linux/atlassian/jira/6/6.0/Dockerfile | 2 -- linux/atlassian/jira/6/6.1.1/Dockerfile | 2 -- linux/atlassian/jira/6/6.1.2/Dockerfile | 2 -- linux/atlassian/jira/6/6.1.3/Dockerfile | 2 -- linux/atlassian/jira/6/6.1.4/Dockerfile | 2 -- linux/atlassian/jira/6/6.1.5/Dockerfile | 2 -- linux/atlassian/jira/6/6.1.6/Dockerfile | 2 -- linux/atlassian/jira/6/6.1.7/Dockerfile | 2 -- linux/atlassian/jira/6/6.1.8/Dockerfile | 2 -- linux/atlassian/jira/6/6.1.9/Dockerfile | 2 -- linux/atlassian/jira/6/6.1/Dockerfile | 2 -- linux/atlassian/jira/6/6.2.1/Dockerfile | 2 -- linux/atlassian/jira/6/6.2.2/Dockerfile | 2 -- linux/atlassian/jira/6/6.2.3/Dockerfile | 2 -- linux/atlassian/jira/6/6.2.4/Dockerfile | 2 -- linux/atlassian/jira/6/6.2.5/Dockerfile | 2 -- linux/atlassian/jira/6/6.2.6/Dockerfile | 2 -- linux/atlassian/jira/6/6.2.7/Dockerfile | 2 -- linux/atlassian/jira/6/6.2/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.1/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.10/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.11/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.12/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.13/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.14/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.15/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.3/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.4/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.5/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.6/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.7/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.8/Dockerfile | 2 -- linux/atlassian/jira/6/6.3.9/Dockerfile | 2 -- linux/atlassian/jira/6/6.3/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.1/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.10/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.11/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.12/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.13/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.14/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.2/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.3/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.4/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.5/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.6/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.7/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.8/Dockerfile | 2 -- linux/atlassian/jira/6/6.4.9/Dockerfile | 2 -- linux/atlassian/jira/6/6.4/Dockerfile | 2 -- linux/atlassian/jira/7/7.0.0/Dockerfile | 1 - linux/atlassian/jira/7/7.0.10/Dockerfile | 1 - linux/atlassian/jira/7/7.0.11/Dockerfile | 1 - linux/atlassian/jira/7/7.0.2/Dockerfile | 1 - linux/atlassian/jira/7/7.0.4/Dockerfile | 1 - linux/atlassian/jira/7/7.0.5/Dockerfile | 1 - linux/atlassian/jira/7/7.1.0/Dockerfile | 1 - linux/atlassian/jira/7/7.1.1/Dockerfile | 1 - linux/atlassian/jira/7/7.1.10/Dockerfile | 1 - linux/atlassian/jira/7/7.1.2/Dockerfile | 1 - linux/atlassian/jira/7/7.1.4/Dockerfile | 1 - linux/atlassian/jira/7/7.1.6/Dockerfile | 1 - linux/atlassian/jira/7/7.1.7/Dockerfile | 1 - linux/atlassian/jira/7/7.1.8/Dockerfile | 1 - linux/atlassian/jira/7/7.1.9/Dockerfile | 1 - linux/atlassian/jira/7/7.10.0/Dockerfile | 1 - linux/atlassian/jira/7/7.10.1/Dockerfile | 1 - linux/atlassian/jira/7/7.10.2/Dockerfile | 1 - linux/atlassian/jira/7/7.11.0/Dockerfile | 1 - linux/atlassian/jira/7/7.11.1/Dockerfile | 1 - linux/atlassian/jira/7/7.11.2/Dockerfile | 1 - linux/atlassian/jira/7/7.12.0/Dockerfile | 1 - linux/atlassian/jira/7/7.12.1/Dockerfile | 1 - linux/atlassian/jira/7/7.12.3/Dockerfile | 1 - linux/atlassian/jira/7/7.13.0/Dockerfile | 1 - linux/atlassian/jira/7/7.13.1/Dockerfile | 1 - linux/atlassian/jira/7/7.13.11/Dockerfile | 1 - linux/atlassian/jira/7/7.13.12/Dockerfile | 1 - linux/atlassian/jira/7/7.13.13/Dockerfile | 1 - linux/atlassian/jira/7/7.13.14/Dockerfile | 1 - linux/atlassian/jira/7/7.13.15/Dockerfile | 1 - linux/atlassian/jira/7/7.13.16/Dockerfile | 1 - linux/atlassian/jira/7/7.13.17/Dockerfile | 1 - linux/atlassian/jira/7/7.13.18/Dockerfile | 1 - linux/atlassian/jira/7/7.13.2/Dockerfile | 1 - linux/atlassian/jira/7/7.13.3/Dockerfile | 1 - linux/atlassian/jira/7/7.13.4/Dockerfile | 1 - linux/atlassian/jira/7/7.13.5/Dockerfile | 1 - linux/atlassian/jira/7/7.13.6/Dockerfile | 1 - linux/atlassian/jira/7/7.13.8/Dockerfile | 1 - linux/atlassian/jira/7/7.13.9/Dockerfile | 1 - linux/atlassian/jira/7/7.2.0/Dockerfile | 1 - linux/atlassian/jira/7/7.2.1/Dockerfile | 1 - linux/atlassian/jira/7/7.2.10/Dockerfile | 1 - linux/atlassian/jira/7/7.2.11/Dockerfile | 1 - linux/atlassian/jira/7/7.2.12/Dockerfile | 1 - linux/atlassian/jira/7/7.2.13/Dockerfile | 1 - linux/atlassian/jira/7/7.2.14/Dockerfile | 1 - linux/atlassian/jira/7/7.2.15/Dockerfile | 1 - linux/atlassian/jira/7/7.2.2/Dockerfile | 1 - linux/atlassian/jira/7/7.2.3/Dockerfile | 1 - linux/atlassian/jira/7/7.2.4/Dockerfile | 1 - linux/atlassian/jira/7/7.2.6/Dockerfile | 1 - linux/atlassian/jira/7/7.2.7/Dockerfile | 1 - linux/atlassian/jira/7/7.2.8/Dockerfile | 1 - linux/atlassian/jira/7/7.2.9/Dockerfile | 1 - linux/atlassian/jira/7/7.3.0/Dockerfile | 1 - linux/atlassian/jira/7/7.3.1/Dockerfile | 1 - linux/atlassian/jira/7/7.3.2/Dockerfile | 1 - linux/atlassian/jira/7/7.3.3/Dockerfile | 1 - linux/atlassian/jira/7/7.3.4/Dockerfile | 1 - linux/atlassian/jira/7/7.3.5/Dockerfile | 1 - linux/atlassian/jira/7/7.3.6/Dockerfile | 1 - linux/atlassian/jira/7/7.3.7/Dockerfile | 1 - linux/atlassian/jira/7/7.3.8/Dockerfile | 1 - linux/atlassian/jira/7/7.3.9/Dockerfile | 1 - linux/atlassian/jira/7/7.4.0/Dockerfile | 1 - linux/atlassian/jira/7/7.4.1/Dockerfile | 1 - linux/atlassian/jira/7/7.4.2/Dockerfile | 1 - linux/atlassian/jira/7/7.4.3/Dockerfile | 1 - linux/atlassian/jira/7/7.4.4/Dockerfile | 1 - linux/atlassian/jira/7/7.4.5/Dockerfile | 1 - linux/atlassian/jira/7/7.4.6/Dockerfile | 1 - linux/atlassian/jira/7/7.5.0/Dockerfile | 1 - linux/atlassian/jira/7/7.5.1/Dockerfile | 1 - linux/atlassian/jira/7/7.5.2/Dockerfile | 1 - linux/atlassian/jira/7/7.5.3/Dockerfile | 1 - linux/atlassian/jira/7/7.5.4/Dockerfile | 1 - linux/atlassian/jira/7/7.6.0/Dockerfile | 1 - linux/atlassian/jira/7/7.6.1/Dockerfile | 1 - linux/atlassian/jira/7/7.6.10/Dockerfile | 1 - linux/atlassian/jira/7/7.6.11/Dockerfile | 1 - linux/atlassian/jira/7/7.6.12/Dockerfile | 1 - linux/atlassian/jira/7/7.6.13/Dockerfile | 1 - linux/atlassian/jira/7/7.6.14/Dockerfile | 1 - linux/atlassian/jira/7/7.6.15/Dockerfile | 1 - linux/atlassian/jira/7/7.6.16/Dockerfile | 1 - linux/atlassian/jira/7/7.6.17/Dockerfile | 1 - linux/atlassian/jira/7/7.6.2/Dockerfile | 1 - linux/atlassian/jira/7/7.6.3/Dockerfile | 1 - linux/atlassian/jira/7/7.6.4/Dockerfile | 1 - linux/atlassian/jira/7/7.6.6/Dockerfile | 1 - linux/atlassian/jira/7/7.6.7/Dockerfile | 1 - linux/atlassian/jira/7/7.6.8/Dockerfile | 1 - linux/atlassian/jira/7/7.6.9/Dockerfile | 1 - linux/atlassian/jira/7/7.7.0/Dockerfile | 1 - linux/atlassian/jira/7/7.7.1/Dockerfile | 1 - linux/atlassian/jira/7/7.7.2/Dockerfile | 1 - linux/atlassian/jira/7/7.7.4/Dockerfile | 1 - linux/atlassian/jira/7/7.8.0/Dockerfile | 1 - linux/atlassian/jira/7/7.8.1/Dockerfile | 1 - linux/atlassian/jira/7/7.8.2/Dockerfile | 1 - linux/atlassian/jira/7/7.8.4/Dockerfile | 1 - linux/atlassian/jira/7/7.9.0/Dockerfile | 1 - linux/atlassian/jira/7/7.9.2/Dockerfile | 1 - linux/atlassian/jira/8/8.0.0/Dockerfile | 1 - linux/atlassian/jira/8/8.0.2/Dockerfile | 1 - linux/atlassian/jira/8/8.0.3/Dockerfile | 1 - linux/atlassian/jira/8/8.1.0/Dockerfile | 1 - linux/atlassian/jira/8/8.1.1/Dockerfile | 1 - linux/atlassian/jira/8/8.1.2/Dockerfile | 1 - linux/atlassian/jira/8/8.1.3/Dockerfile | 1 - linux/atlassian/jira/8/8.10.0/Dockerfile | 1 - linux/atlassian/jira/8/8.10.1/Dockerfile | 1 - linux/atlassian/jira/8/8.11.0/Dockerfile | 1 - linux/atlassian/jira/8/8.11.1/Dockerfile | 1 - linux/atlassian/jira/8/8.12.0/Dockerfile | 1 - linux/atlassian/jira/8/8.12.1/Dockerfile | 1 - linux/atlassian/jira/8/8.12.2/Dockerfile | 1 - linux/atlassian/jira/8/8.12.3/Dockerfile | 1 - linux/atlassian/jira/8/8.13.0/Dockerfile | 1 - linux/atlassian/jira/8/8.13.1/Dockerfile | 1 - linux/atlassian/jira/8/8.13.2/Dockerfile | 1 - linux/atlassian/jira/8/8.13.3/Dockerfile | 1 - linux/atlassian/jira/8/8.13.4/Dockerfile | 1 - linux/atlassian/jira/8/8.13.5/Dockerfile | 1 - linux/atlassian/jira/8/8.13.6/Dockerfile | 1 - linux/atlassian/jira/8/8.13.7/Dockerfile | 1 - linux/atlassian/jira/8/8.14.0/Dockerfile | 1 - linux/atlassian/jira/8/8.14.1/Dockerfile | 1 - linux/atlassian/jira/8/8.15.0/Dockerfile | 1 - linux/atlassian/jira/8/8.15.1/Dockerfile | 1 - linux/atlassian/jira/8/8.16.0/Dockerfile | 1 - linux/atlassian/jira/8/8.16.1/Dockerfile | 1 - linux/atlassian/jira/8/8.17.0/Dockerfile | 1 - linux/atlassian/jira/8/8.2.0/Dockerfile | 1 - linux/atlassian/jira/8/8.2.1/Dockerfile | 1 - linux/atlassian/jira/8/8.2.2/Dockerfile | 1 - linux/atlassian/jira/8/8.2.3/Dockerfile | 1 - linux/atlassian/jira/8/8.2.4/Dockerfile | 1 - linux/atlassian/jira/8/8.2.5/Dockerfile | 1 - linux/atlassian/jira/8/8.2.6/Dockerfile | 1 - linux/atlassian/jira/8/8.3.0/Dockerfile | 1 - linux/atlassian/jira/8/8.3.1/Dockerfile | 1 - linux/atlassian/jira/8/8.3.2/Dockerfile | 1 - linux/atlassian/jira/8/8.3.3/Dockerfile | 1 - linux/atlassian/jira/8/8.3.4/Dockerfile | 1 - linux/atlassian/jira/8/8.3.5/Dockerfile | 1 - linux/atlassian/jira/8/8.4.0/Dockerfile | 1 - linux/atlassian/jira/8/8.4.1/Dockerfile | 1 - linux/atlassian/jira/8/8.4.2/Dockerfile | 1 - linux/atlassian/jira/8/8.4.3/Dockerfile | 1 - linux/atlassian/jira/8/8.5.0/Dockerfile | 1 - linux/atlassian/jira/8/8.5.1/Dockerfile | 1 - linux/atlassian/jira/8/8.5.10/Dockerfile | 1 - linux/atlassian/jira/8/8.5.11/Dockerfile | 1 - linux/atlassian/jira/8/8.5.12/Dockerfile | 1 - linux/atlassian/jira/8/8.5.13/Dockerfile | 1 - linux/atlassian/jira/8/8.5.14/Dockerfile | 1 - linux/atlassian/jira/8/8.5.15/Dockerfile | 1 - linux/atlassian/jira/8/8.5.2/Dockerfile | 1 - linux/atlassian/jira/8/8.5.3/Dockerfile | 1 - linux/atlassian/jira/8/8.5.4/Dockerfile | 1 - linux/atlassian/jira/8/8.5.5/Dockerfile | 1 - linux/atlassian/jira/8/8.5.6/Dockerfile | 1 - linux/atlassian/jira/8/8.5.7/Dockerfile | 1 - linux/atlassian/jira/8/8.5.8/Dockerfile | 1 - linux/atlassian/jira/8/8.5.9/Dockerfile | 1 - linux/atlassian/jira/8/8.6.0/Dockerfile | 1 - linux/atlassian/jira/8/8.6.1/Dockerfile | 1 - linux/atlassian/jira/8/8.7.0/Dockerfile | 1 - linux/atlassian/jira/8/8.7.1/Dockerfile | 1 - linux/atlassian/jira/8/8.8.0/Dockerfile | 1 - linux/atlassian/jira/8/8.8.1/Dockerfile | 1 - linux/atlassian/jira/8/8.9.0/Dockerfile | 1 - linux/atlassian/jira/8/8.9.1/Dockerfile | 1 - linux/atlassian/jira/latest/Dockerfile | 2 +- linux/atlassian/jira/latest/Dockerfile.jdk11 | 3 +-- 265 files changed, 2 insertions(+), 353 deletions(-) diff --git a/linux/atlassian/jira/5/5.0.1/Dockerfile b/linux/atlassian/jira/5/5.0.1/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.0.1/Dockerfile +++ b/linux/atlassian/jira/5/5.0.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.0.2/Dockerfile b/linux/atlassian/jira/5/5.0.2/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.0.2/Dockerfile +++ b/linux/atlassian/jira/5/5.0.2/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.0.3/Dockerfile b/linux/atlassian/jira/5/5.0.3/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.0.3/Dockerfile +++ b/linux/atlassian/jira/5/5.0.3/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.0.4/Dockerfile b/linux/atlassian/jira/5/5.0.4/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.0.4/Dockerfile +++ b/linux/atlassian/jira/5/5.0.4/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.0.5/Dockerfile b/linux/atlassian/jira/5/5.0.5/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.0.5/Dockerfile +++ b/linux/atlassian/jira/5/5.0.5/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.0.6/Dockerfile b/linux/atlassian/jira/5/5.0.6/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.0.6/Dockerfile +++ b/linux/atlassian/jira/5/5.0.6/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.0.7/Dockerfile b/linux/atlassian/jira/5/5.0.7/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.0.7/Dockerfile +++ b/linux/atlassian/jira/5/5.0.7/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.0/Dockerfile b/linux/atlassian/jira/5/5.0/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.0/Dockerfile +++ b/linux/atlassian/jira/5/5.0/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.1.1/Dockerfile b/linux/atlassian/jira/5/5.1.1/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.1.1/Dockerfile +++ b/linux/atlassian/jira/5/5.1.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.1.2/Dockerfile b/linux/atlassian/jira/5/5.1.2/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.1.2/Dockerfile +++ b/linux/atlassian/jira/5/5.1.2/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.1.3/Dockerfile b/linux/atlassian/jira/5/5.1.3/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.1.3/Dockerfile +++ b/linux/atlassian/jira/5/5.1.3/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.1.4/Dockerfile b/linux/atlassian/jira/5/5.1.4/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.1.4/Dockerfile +++ b/linux/atlassian/jira/5/5.1.4/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.1.5/Dockerfile b/linux/atlassian/jira/5/5.1.5/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.1.5/Dockerfile +++ b/linux/atlassian/jira/5/5.1.5/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.1.6/Dockerfile b/linux/atlassian/jira/5/5.1.6/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.1.6/Dockerfile +++ b/linux/atlassian/jira/5/5.1.6/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.1.7/Dockerfile b/linux/atlassian/jira/5/5.1.7/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.1.7/Dockerfile +++ b/linux/atlassian/jira/5/5.1.7/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.1.8/Dockerfile b/linux/atlassian/jira/5/5.1.8/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.1.8/Dockerfile +++ b/linux/atlassian/jira/5/5.1.8/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.1/Dockerfile b/linux/atlassian/jira/5/5.1/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.1/Dockerfile +++ b/linux/atlassian/jira/5/5.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.1/Dockerfile b/linux/atlassian/jira/5/5.2.1/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.1/Dockerfile +++ b/linux/atlassian/jira/5/5.2.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.10/Dockerfile b/linux/atlassian/jira/5/5.2.10/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.10/Dockerfile +++ b/linux/atlassian/jira/5/5.2.10/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.11/Dockerfile b/linux/atlassian/jira/5/5.2.11/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.11/Dockerfile +++ b/linux/atlassian/jira/5/5.2.11/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.2/Dockerfile b/linux/atlassian/jira/5/5.2.2/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.2/Dockerfile +++ b/linux/atlassian/jira/5/5.2.2/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.3/Dockerfile b/linux/atlassian/jira/5/5.2.3/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.3/Dockerfile +++ b/linux/atlassian/jira/5/5.2.3/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.4.1/Dockerfile b/linux/atlassian/jira/5/5.2.4.1/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.4.1/Dockerfile +++ b/linux/atlassian/jira/5/5.2.4.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.4/Dockerfile b/linux/atlassian/jira/5/5.2.4/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.4/Dockerfile +++ b/linux/atlassian/jira/5/5.2.4/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.5/Dockerfile b/linux/atlassian/jira/5/5.2.5/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.5/Dockerfile +++ b/linux/atlassian/jira/5/5.2.5/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.6/Dockerfile b/linux/atlassian/jira/5/5.2.6/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.6/Dockerfile +++ b/linux/atlassian/jira/5/5.2.6/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.7/Dockerfile b/linux/atlassian/jira/5/5.2.7/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.7/Dockerfile +++ b/linux/atlassian/jira/5/5.2.7/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.8/Dockerfile b/linux/atlassian/jira/5/5.2.8/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.8/Dockerfile +++ b/linux/atlassian/jira/5/5.2.8/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2.9/Dockerfile b/linux/atlassian/jira/5/5.2.9/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2.9/Dockerfile +++ b/linux/atlassian/jira/5/5.2.9/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/5/5.2/Dockerfile b/linux/atlassian/jira/5/5.2/Dockerfile index 04d21c08e..4817a899d 100644 --- a/linux/atlassian/jira/5/5.2/Dockerfile +++ b/linux/atlassian/jira/5/5.2/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.0.1/Dockerfile b/linux/atlassian/jira/6/6.0.1/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.0.1/Dockerfile +++ b/linux/atlassian/jira/6/6.0.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.0.2/Dockerfile b/linux/atlassian/jira/6/6.0.2/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.0.2/Dockerfile +++ b/linux/atlassian/jira/6/6.0.2/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.0.3/Dockerfile b/linux/atlassian/jira/6/6.0.3/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.0.3/Dockerfile +++ b/linux/atlassian/jira/6/6.0.3/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.0.4/Dockerfile b/linux/atlassian/jira/6/6.0.4/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.0.4/Dockerfile +++ b/linux/atlassian/jira/6/6.0.4/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.0.5/Dockerfile b/linux/atlassian/jira/6/6.0.5/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.0.5/Dockerfile +++ b/linux/atlassian/jira/6/6.0.5/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.0.6/Dockerfile b/linux/atlassian/jira/6/6.0.6/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.0.6/Dockerfile +++ b/linux/atlassian/jira/6/6.0.6/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.0.7/Dockerfile b/linux/atlassian/jira/6/6.0.7/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.0.7/Dockerfile +++ b/linux/atlassian/jira/6/6.0.7/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.0.8/Dockerfile b/linux/atlassian/jira/6/6.0.8/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.0.8/Dockerfile +++ b/linux/atlassian/jira/6/6.0.8/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.0/Dockerfile b/linux/atlassian/jira/6/6.0/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.0/Dockerfile +++ b/linux/atlassian/jira/6/6.0/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1.1/Dockerfile b/linux/atlassian/jira/6/6.1.1/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1.1/Dockerfile +++ b/linux/atlassian/jira/6/6.1.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1.2/Dockerfile b/linux/atlassian/jira/6/6.1.2/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1.2/Dockerfile +++ b/linux/atlassian/jira/6/6.1.2/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1.3/Dockerfile b/linux/atlassian/jira/6/6.1.3/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1.3/Dockerfile +++ b/linux/atlassian/jira/6/6.1.3/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1.4/Dockerfile b/linux/atlassian/jira/6/6.1.4/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1.4/Dockerfile +++ b/linux/atlassian/jira/6/6.1.4/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1.5/Dockerfile b/linux/atlassian/jira/6/6.1.5/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1.5/Dockerfile +++ b/linux/atlassian/jira/6/6.1.5/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1.6/Dockerfile b/linux/atlassian/jira/6/6.1.6/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1.6/Dockerfile +++ b/linux/atlassian/jira/6/6.1.6/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1.7/Dockerfile b/linux/atlassian/jira/6/6.1.7/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1.7/Dockerfile +++ b/linux/atlassian/jira/6/6.1.7/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1.8/Dockerfile b/linux/atlassian/jira/6/6.1.8/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1.8/Dockerfile +++ b/linux/atlassian/jira/6/6.1.8/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1.9/Dockerfile b/linux/atlassian/jira/6/6.1.9/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1.9/Dockerfile +++ b/linux/atlassian/jira/6/6.1.9/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.1/Dockerfile b/linux/atlassian/jira/6/6.1/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.1/Dockerfile +++ b/linux/atlassian/jira/6/6.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.2.1/Dockerfile b/linux/atlassian/jira/6/6.2.1/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.2.1/Dockerfile +++ b/linux/atlassian/jira/6/6.2.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.2.2/Dockerfile b/linux/atlassian/jira/6/6.2.2/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.2.2/Dockerfile +++ b/linux/atlassian/jira/6/6.2.2/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.2.3/Dockerfile b/linux/atlassian/jira/6/6.2.3/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.2.3/Dockerfile +++ b/linux/atlassian/jira/6/6.2.3/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.2.4/Dockerfile b/linux/atlassian/jira/6/6.2.4/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.2.4/Dockerfile +++ b/linux/atlassian/jira/6/6.2.4/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.2.5/Dockerfile b/linux/atlassian/jira/6/6.2.5/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.2.5/Dockerfile +++ b/linux/atlassian/jira/6/6.2.5/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.2.6/Dockerfile b/linux/atlassian/jira/6/6.2.6/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.2.6/Dockerfile +++ b/linux/atlassian/jira/6/6.2.6/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.2.7/Dockerfile b/linux/atlassian/jira/6/6.2.7/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.2.7/Dockerfile +++ b/linux/atlassian/jira/6/6.2.7/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.2/Dockerfile b/linux/atlassian/jira/6/6.2/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.2/Dockerfile +++ b/linux/atlassian/jira/6/6.2/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.1/Dockerfile b/linux/atlassian/jira/6/6.3.1/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.1/Dockerfile +++ b/linux/atlassian/jira/6/6.3.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.10/Dockerfile b/linux/atlassian/jira/6/6.3.10/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.10/Dockerfile +++ b/linux/atlassian/jira/6/6.3.10/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.11/Dockerfile b/linux/atlassian/jira/6/6.3.11/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.11/Dockerfile +++ b/linux/atlassian/jira/6/6.3.11/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.12/Dockerfile b/linux/atlassian/jira/6/6.3.12/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.12/Dockerfile +++ b/linux/atlassian/jira/6/6.3.12/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.13/Dockerfile b/linux/atlassian/jira/6/6.3.13/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.13/Dockerfile +++ b/linux/atlassian/jira/6/6.3.13/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.14/Dockerfile b/linux/atlassian/jira/6/6.3.14/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.14/Dockerfile +++ b/linux/atlassian/jira/6/6.3.14/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.15/Dockerfile b/linux/atlassian/jira/6/6.3.15/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.15/Dockerfile +++ b/linux/atlassian/jira/6/6.3.15/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.3/Dockerfile b/linux/atlassian/jira/6/6.3.3/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.3/Dockerfile +++ b/linux/atlassian/jira/6/6.3.3/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.4/Dockerfile b/linux/atlassian/jira/6/6.3.4/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.4/Dockerfile +++ b/linux/atlassian/jira/6/6.3.4/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.5/Dockerfile b/linux/atlassian/jira/6/6.3.5/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.5/Dockerfile +++ b/linux/atlassian/jira/6/6.3.5/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.6/Dockerfile b/linux/atlassian/jira/6/6.3.6/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.6/Dockerfile +++ b/linux/atlassian/jira/6/6.3.6/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.7/Dockerfile b/linux/atlassian/jira/6/6.3.7/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.7/Dockerfile +++ b/linux/atlassian/jira/6/6.3.7/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.8/Dockerfile b/linux/atlassian/jira/6/6.3.8/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.8/Dockerfile +++ b/linux/atlassian/jira/6/6.3.8/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3.9/Dockerfile b/linux/atlassian/jira/6/6.3.9/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3.9/Dockerfile +++ b/linux/atlassian/jira/6/6.3.9/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.3/Dockerfile b/linux/atlassian/jira/6/6.3/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.3/Dockerfile +++ b/linux/atlassian/jira/6/6.3/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.1/Dockerfile b/linux/atlassian/jira/6/6.4.1/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.1/Dockerfile +++ b/linux/atlassian/jira/6/6.4.1/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.10/Dockerfile b/linux/atlassian/jira/6/6.4.10/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.10/Dockerfile +++ b/linux/atlassian/jira/6/6.4.10/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.11/Dockerfile b/linux/atlassian/jira/6/6.4.11/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.11/Dockerfile +++ b/linux/atlassian/jira/6/6.4.11/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.12/Dockerfile b/linux/atlassian/jira/6/6.4.12/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.12/Dockerfile +++ b/linux/atlassian/jira/6/6.4.12/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.13/Dockerfile b/linux/atlassian/jira/6/6.4.13/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.13/Dockerfile +++ b/linux/atlassian/jira/6/6.4.13/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.14/Dockerfile b/linux/atlassian/jira/6/6.4.14/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.14/Dockerfile +++ b/linux/atlassian/jira/6/6.4.14/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.2/Dockerfile b/linux/atlassian/jira/6/6.4.2/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.2/Dockerfile +++ b/linux/atlassian/jira/6/6.4.2/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.3/Dockerfile b/linux/atlassian/jira/6/6.4.3/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.3/Dockerfile +++ b/linux/atlassian/jira/6/6.4.3/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.4/Dockerfile b/linux/atlassian/jira/6/6.4.4/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.4/Dockerfile +++ b/linux/atlassian/jira/6/6.4.4/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.5/Dockerfile b/linux/atlassian/jira/6/6.4.5/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.5/Dockerfile +++ b/linux/atlassian/jira/6/6.4.5/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.6/Dockerfile b/linux/atlassian/jira/6/6.4.6/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.6/Dockerfile +++ b/linux/atlassian/jira/6/6.4.6/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.7/Dockerfile b/linux/atlassian/jira/6/6.4.7/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.7/Dockerfile +++ b/linux/atlassian/jira/6/6.4.7/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.8/Dockerfile b/linux/atlassian/jira/6/6.4.8/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.8/Dockerfile +++ b/linux/atlassian/jira/6/6.4.8/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4.9/Dockerfile b/linux/atlassian/jira/6/6.4.9/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4.9/Dockerfile +++ b/linux/atlassian/jira/6/6.4.9/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/6/6.4/Dockerfile b/linux/atlassian/jira/6/6.4/Dockerfile index 9d7304645..2a1d2a7df 100644 --- a/linux/atlassian/jira/6/6.4/Dockerfile +++ b/linux/atlassian/jira/6/6.4/Dockerfile @@ -35,9 +35,7 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ \ && sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ - && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.0.0/Dockerfile b/linux/atlassian/jira/7/7.0.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.0.0/Dockerfile +++ b/linux/atlassian/jira/7/7.0.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.0.10/Dockerfile b/linux/atlassian/jira/7/7.0.10/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.0.10/Dockerfile +++ b/linux/atlassian/jira/7/7.0.10/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.0.11/Dockerfile b/linux/atlassian/jira/7/7.0.11/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.0.11/Dockerfile +++ b/linux/atlassian/jira/7/7.0.11/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.0.2/Dockerfile b/linux/atlassian/jira/7/7.0.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.0.2/Dockerfile +++ b/linux/atlassian/jira/7/7.0.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.0.4/Dockerfile b/linux/atlassian/jira/7/7.0.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.0.4/Dockerfile +++ b/linux/atlassian/jira/7/7.0.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.0.5/Dockerfile b/linux/atlassian/jira/7/7.0.5/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.0.5/Dockerfile +++ b/linux/atlassian/jira/7/7.0.5/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.1.0/Dockerfile b/linux/atlassian/jira/7/7.1.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.1.0/Dockerfile +++ b/linux/atlassian/jira/7/7.1.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.1.1/Dockerfile b/linux/atlassian/jira/7/7.1.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.1.1/Dockerfile +++ b/linux/atlassian/jira/7/7.1.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.1.10/Dockerfile b/linux/atlassian/jira/7/7.1.10/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.1.10/Dockerfile +++ b/linux/atlassian/jira/7/7.1.10/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.1.2/Dockerfile b/linux/atlassian/jira/7/7.1.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.1.2/Dockerfile +++ b/linux/atlassian/jira/7/7.1.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.1.4/Dockerfile b/linux/atlassian/jira/7/7.1.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.1.4/Dockerfile +++ b/linux/atlassian/jira/7/7.1.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.1.6/Dockerfile b/linux/atlassian/jira/7/7.1.6/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.1.6/Dockerfile +++ b/linux/atlassian/jira/7/7.1.6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.1.7/Dockerfile b/linux/atlassian/jira/7/7.1.7/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.1.7/Dockerfile +++ b/linux/atlassian/jira/7/7.1.7/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.1.8/Dockerfile b/linux/atlassian/jira/7/7.1.8/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.1.8/Dockerfile +++ b/linux/atlassian/jira/7/7.1.8/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.1.9/Dockerfile b/linux/atlassian/jira/7/7.1.9/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.1.9/Dockerfile +++ b/linux/atlassian/jira/7/7.1.9/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.10.0/Dockerfile b/linux/atlassian/jira/7/7.10.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.10.0/Dockerfile +++ b/linux/atlassian/jira/7/7.10.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.10.1/Dockerfile b/linux/atlassian/jira/7/7.10.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.10.1/Dockerfile +++ b/linux/atlassian/jira/7/7.10.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.10.2/Dockerfile b/linux/atlassian/jira/7/7.10.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.10.2/Dockerfile +++ b/linux/atlassian/jira/7/7.10.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.11.0/Dockerfile b/linux/atlassian/jira/7/7.11.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.11.0/Dockerfile +++ b/linux/atlassian/jira/7/7.11.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.11.1/Dockerfile b/linux/atlassian/jira/7/7.11.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.11.1/Dockerfile +++ b/linux/atlassian/jira/7/7.11.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.11.2/Dockerfile b/linux/atlassian/jira/7/7.11.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.11.2/Dockerfile +++ b/linux/atlassian/jira/7/7.11.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.12.0/Dockerfile b/linux/atlassian/jira/7/7.12.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.12.0/Dockerfile +++ b/linux/atlassian/jira/7/7.12.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.12.1/Dockerfile b/linux/atlassian/jira/7/7.12.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.12.1/Dockerfile +++ b/linux/atlassian/jira/7/7.12.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.12.3/Dockerfile b/linux/atlassian/jira/7/7.12.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.12.3/Dockerfile +++ b/linux/atlassian/jira/7/7.12.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.0/Dockerfile b/linux/atlassian/jira/7/7.13.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.0/Dockerfile +++ b/linux/atlassian/jira/7/7.13.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.1/Dockerfile b/linux/atlassian/jira/7/7.13.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.1/Dockerfile +++ b/linux/atlassian/jira/7/7.13.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.11/Dockerfile b/linux/atlassian/jira/7/7.13.11/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.11/Dockerfile +++ b/linux/atlassian/jira/7/7.13.11/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.12/Dockerfile b/linux/atlassian/jira/7/7.13.12/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.12/Dockerfile +++ b/linux/atlassian/jira/7/7.13.12/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.13/Dockerfile b/linux/atlassian/jira/7/7.13.13/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.13/Dockerfile +++ b/linux/atlassian/jira/7/7.13.13/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.14/Dockerfile b/linux/atlassian/jira/7/7.13.14/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.14/Dockerfile +++ b/linux/atlassian/jira/7/7.13.14/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.15/Dockerfile b/linux/atlassian/jira/7/7.13.15/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.15/Dockerfile +++ b/linux/atlassian/jira/7/7.13.15/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.16/Dockerfile b/linux/atlassian/jira/7/7.13.16/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.16/Dockerfile +++ b/linux/atlassian/jira/7/7.13.16/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.17/Dockerfile b/linux/atlassian/jira/7/7.13.17/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.17/Dockerfile +++ b/linux/atlassian/jira/7/7.13.17/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.18/Dockerfile b/linux/atlassian/jira/7/7.13.18/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.18/Dockerfile +++ b/linux/atlassian/jira/7/7.13.18/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.2/Dockerfile b/linux/atlassian/jira/7/7.13.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.2/Dockerfile +++ b/linux/atlassian/jira/7/7.13.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.3/Dockerfile b/linux/atlassian/jira/7/7.13.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.3/Dockerfile +++ b/linux/atlassian/jira/7/7.13.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.4/Dockerfile b/linux/atlassian/jira/7/7.13.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.4/Dockerfile +++ b/linux/atlassian/jira/7/7.13.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.5/Dockerfile b/linux/atlassian/jira/7/7.13.5/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.5/Dockerfile +++ b/linux/atlassian/jira/7/7.13.5/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.6/Dockerfile b/linux/atlassian/jira/7/7.13.6/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.6/Dockerfile +++ b/linux/atlassian/jira/7/7.13.6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.8/Dockerfile b/linux/atlassian/jira/7/7.13.8/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.8/Dockerfile +++ b/linux/atlassian/jira/7/7.13.8/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.13.9/Dockerfile b/linux/atlassian/jira/7/7.13.9/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.13.9/Dockerfile +++ b/linux/atlassian/jira/7/7.13.9/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.0/Dockerfile b/linux/atlassian/jira/7/7.2.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.0/Dockerfile +++ b/linux/atlassian/jira/7/7.2.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.1/Dockerfile b/linux/atlassian/jira/7/7.2.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.1/Dockerfile +++ b/linux/atlassian/jira/7/7.2.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.10/Dockerfile b/linux/atlassian/jira/7/7.2.10/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.10/Dockerfile +++ b/linux/atlassian/jira/7/7.2.10/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.11/Dockerfile b/linux/atlassian/jira/7/7.2.11/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.11/Dockerfile +++ b/linux/atlassian/jira/7/7.2.11/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.12/Dockerfile b/linux/atlassian/jira/7/7.2.12/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.12/Dockerfile +++ b/linux/atlassian/jira/7/7.2.12/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.13/Dockerfile b/linux/atlassian/jira/7/7.2.13/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.13/Dockerfile +++ b/linux/atlassian/jira/7/7.2.13/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.14/Dockerfile b/linux/atlassian/jira/7/7.2.14/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.14/Dockerfile +++ b/linux/atlassian/jira/7/7.2.14/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.15/Dockerfile b/linux/atlassian/jira/7/7.2.15/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.15/Dockerfile +++ b/linux/atlassian/jira/7/7.2.15/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.2/Dockerfile b/linux/atlassian/jira/7/7.2.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.2/Dockerfile +++ b/linux/atlassian/jira/7/7.2.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.3/Dockerfile b/linux/atlassian/jira/7/7.2.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.3/Dockerfile +++ b/linux/atlassian/jira/7/7.2.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.4/Dockerfile b/linux/atlassian/jira/7/7.2.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.4/Dockerfile +++ b/linux/atlassian/jira/7/7.2.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.6/Dockerfile b/linux/atlassian/jira/7/7.2.6/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.6/Dockerfile +++ b/linux/atlassian/jira/7/7.2.6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.7/Dockerfile b/linux/atlassian/jira/7/7.2.7/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.7/Dockerfile +++ b/linux/atlassian/jira/7/7.2.7/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.8/Dockerfile b/linux/atlassian/jira/7/7.2.8/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.8/Dockerfile +++ b/linux/atlassian/jira/7/7.2.8/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.2.9/Dockerfile b/linux/atlassian/jira/7/7.2.9/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.2.9/Dockerfile +++ b/linux/atlassian/jira/7/7.2.9/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.0/Dockerfile b/linux/atlassian/jira/7/7.3.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.0/Dockerfile +++ b/linux/atlassian/jira/7/7.3.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.1/Dockerfile b/linux/atlassian/jira/7/7.3.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.1/Dockerfile +++ b/linux/atlassian/jira/7/7.3.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.2/Dockerfile b/linux/atlassian/jira/7/7.3.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.2/Dockerfile +++ b/linux/atlassian/jira/7/7.3.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.3/Dockerfile b/linux/atlassian/jira/7/7.3.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.3/Dockerfile +++ b/linux/atlassian/jira/7/7.3.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.4/Dockerfile b/linux/atlassian/jira/7/7.3.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.4/Dockerfile +++ b/linux/atlassian/jira/7/7.3.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.5/Dockerfile b/linux/atlassian/jira/7/7.3.5/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.5/Dockerfile +++ b/linux/atlassian/jira/7/7.3.5/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.6/Dockerfile b/linux/atlassian/jira/7/7.3.6/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.6/Dockerfile +++ b/linux/atlassian/jira/7/7.3.6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.7/Dockerfile b/linux/atlassian/jira/7/7.3.7/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.7/Dockerfile +++ b/linux/atlassian/jira/7/7.3.7/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.8/Dockerfile b/linux/atlassian/jira/7/7.3.8/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.8/Dockerfile +++ b/linux/atlassian/jira/7/7.3.8/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.3.9/Dockerfile b/linux/atlassian/jira/7/7.3.9/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.3.9/Dockerfile +++ b/linux/atlassian/jira/7/7.3.9/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.4.0/Dockerfile b/linux/atlassian/jira/7/7.4.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.4.0/Dockerfile +++ b/linux/atlassian/jira/7/7.4.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.4.1/Dockerfile b/linux/atlassian/jira/7/7.4.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.4.1/Dockerfile +++ b/linux/atlassian/jira/7/7.4.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.4.2/Dockerfile b/linux/atlassian/jira/7/7.4.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.4.2/Dockerfile +++ b/linux/atlassian/jira/7/7.4.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.4.3/Dockerfile b/linux/atlassian/jira/7/7.4.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.4.3/Dockerfile +++ b/linux/atlassian/jira/7/7.4.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.4.4/Dockerfile b/linux/atlassian/jira/7/7.4.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.4.4/Dockerfile +++ b/linux/atlassian/jira/7/7.4.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.4.5/Dockerfile b/linux/atlassian/jira/7/7.4.5/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.4.5/Dockerfile +++ b/linux/atlassian/jira/7/7.4.5/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.4.6/Dockerfile b/linux/atlassian/jira/7/7.4.6/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.4.6/Dockerfile +++ b/linux/atlassian/jira/7/7.4.6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.5.0/Dockerfile b/linux/atlassian/jira/7/7.5.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.5.0/Dockerfile +++ b/linux/atlassian/jira/7/7.5.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.5.1/Dockerfile b/linux/atlassian/jira/7/7.5.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.5.1/Dockerfile +++ b/linux/atlassian/jira/7/7.5.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.5.2/Dockerfile b/linux/atlassian/jira/7/7.5.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.5.2/Dockerfile +++ b/linux/atlassian/jira/7/7.5.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.5.3/Dockerfile b/linux/atlassian/jira/7/7.5.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.5.3/Dockerfile +++ b/linux/atlassian/jira/7/7.5.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.5.4/Dockerfile b/linux/atlassian/jira/7/7.5.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.5.4/Dockerfile +++ b/linux/atlassian/jira/7/7.5.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.0/Dockerfile b/linux/atlassian/jira/7/7.6.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.0/Dockerfile +++ b/linux/atlassian/jira/7/7.6.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.1/Dockerfile b/linux/atlassian/jira/7/7.6.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.1/Dockerfile +++ b/linux/atlassian/jira/7/7.6.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.10/Dockerfile b/linux/atlassian/jira/7/7.6.10/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.10/Dockerfile +++ b/linux/atlassian/jira/7/7.6.10/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.11/Dockerfile b/linux/atlassian/jira/7/7.6.11/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.11/Dockerfile +++ b/linux/atlassian/jira/7/7.6.11/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.12/Dockerfile b/linux/atlassian/jira/7/7.6.12/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.12/Dockerfile +++ b/linux/atlassian/jira/7/7.6.12/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.13/Dockerfile b/linux/atlassian/jira/7/7.6.13/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.13/Dockerfile +++ b/linux/atlassian/jira/7/7.6.13/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.14/Dockerfile b/linux/atlassian/jira/7/7.6.14/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.14/Dockerfile +++ b/linux/atlassian/jira/7/7.6.14/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.15/Dockerfile b/linux/atlassian/jira/7/7.6.15/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.15/Dockerfile +++ b/linux/atlassian/jira/7/7.6.15/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.16/Dockerfile b/linux/atlassian/jira/7/7.6.16/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.16/Dockerfile +++ b/linux/atlassian/jira/7/7.6.16/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.17/Dockerfile b/linux/atlassian/jira/7/7.6.17/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.17/Dockerfile +++ b/linux/atlassian/jira/7/7.6.17/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.2/Dockerfile b/linux/atlassian/jira/7/7.6.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.2/Dockerfile +++ b/linux/atlassian/jira/7/7.6.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.3/Dockerfile b/linux/atlassian/jira/7/7.6.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.3/Dockerfile +++ b/linux/atlassian/jira/7/7.6.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.4/Dockerfile b/linux/atlassian/jira/7/7.6.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.4/Dockerfile +++ b/linux/atlassian/jira/7/7.6.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.6/Dockerfile b/linux/atlassian/jira/7/7.6.6/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.6/Dockerfile +++ b/linux/atlassian/jira/7/7.6.6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.7/Dockerfile b/linux/atlassian/jira/7/7.6.7/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.7/Dockerfile +++ b/linux/atlassian/jira/7/7.6.7/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.8/Dockerfile b/linux/atlassian/jira/7/7.6.8/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.8/Dockerfile +++ b/linux/atlassian/jira/7/7.6.8/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.6.9/Dockerfile b/linux/atlassian/jira/7/7.6.9/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.6.9/Dockerfile +++ b/linux/atlassian/jira/7/7.6.9/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.7.0/Dockerfile b/linux/atlassian/jira/7/7.7.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.7.0/Dockerfile +++ b/linux/atlassian/jira/7/7.7.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.7.1/Dockerfile b/linux/atlassian/jira/7/7.7.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.7.1/Dockerfile +++ b/linux/atlassian/jira/7/7.7.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.7.2/Dockerfile b/linux/atlassian/jira/7/7.7.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.7.2/Dockerfile +++ b/linux/atlassian/jira/7/7.7.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.7.4/Dockerfile b/linux/atlassian/jira/7/7.7.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.7.4/Dockerfile +++ b/linux/atlassian/jira/7/7.7.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.8.0/Dockerfile b/linux/atlassian/jira/7/7.8.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.8.0/Dockerfile +++ b/linux/atlassian/jira/7/7.8.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.8.1/Dockerfile b/linux/atlassian/jira/7/7.8.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.8.1/Dockerfile +++ b/linux/atlassian/jira/7/7.8.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.8.2/Dockerfile b/linux/atlassian/jira/7/7.8.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.8.2/Dockerfile +++ b/linux/atlassian/jira/7/7.8.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.8.4/Dockerfile b/linux/atlassian/jira/7/7.8.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.8.4/Dockerfile +++ b/linux/atlassian/jira/7/7.8.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.9.0/Dockerfile b/linux/atlassian/jira/7/7.9.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.9.0/Dockerfile +++ b/linux/atlassian/jira/7/7.9.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/7/7.9.2/Dockerfile b/linux/atlassian/jira/7/7.9.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/7/7.9.2/Dockerfile +++ b/linux/atlassian/jira/7/7.9.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.0.0/Dockerfile b/linux/atlassian/jira/8/8.0.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.0.0/Dockerfile +++ b/linux/atlassian/jira/8/8.0.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.0.2/Dockerfile b/linux/atlassian/jira/8/8.0.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.0.2/Dockerfile +++ b/linux/atlassian/jira/8/8.0.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.0.3/Dockerfile b/linux/atlassian/jira/8/8.0.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.0.3/Dockerfile +++ b/linux/atlassian/jira/8/8.0.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.1.0/Dockerfile b/linux/atlassian/jira/8/8.1.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.1.0/Dockerfile +++ b/linux/atlassian/jira/8/8.1.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.1.1/Dockerfile b/linux/atlassian/jira/8/8.1.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.1.1/Dockerfile +++ b/linux/atlassian/jira/8/8.1.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.1.2/Dockerfile b/linux/atlassian/jira/8/8.1.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.1.2/Dockerfile +++ b/linux/atlassian/jira/8/8.1.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.1.3/Dockerfile b/linux/atlassian/jira/8/8.1.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.1.3/Dockerfile +++ b/linux/atlassian/jira/8/8.1.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.10.0/Dockerfile b/linux/atlassian/jira/8/8.10.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.10.0/Dockerfile +++ b/linux/atlassian/jira/8/8.10.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.10.1/Dockerfile b/linux/atlassian/jira/8/8.10.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.10.1/Dockerfile +++ b/linux/atlassian/jira/8/8.10.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.11.0/Dockerfile b/linux/atlassian/jira/8/8.11.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.11.0/Dockerfile +++ b/linux/atlassian/jira/8/8.11.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.11.1/Dockerfile b/linux/atlassian/jira/8/8.11.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.11.1/Dockerfile +++ b/linux/atlassian/jira/8/8.11.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.12.0/Dockerfile b/linux/atlassian/jira/8/8.12.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.12.0/Dockerfile +++ b/linux/atlassian/jira/8/8.12.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.12.1/Dockerfile b/linux/atlassian/jira/8/8.12.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.12.1/Dockerfile +++ b/linux/atlassian/jira/8/8.12.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.12.2/Dockerfile b/linux/atlassian/jira/8/8.12.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.12.2/Dockerfile +++ b/linux/atlassian/jira/8/8.12.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.12.3/Dockerfile b/linux/atlassian/jira/8/8.12.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.12.3/Dockerfile +++ b/linux/atlassian/jira/8/8.12.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.13.0/Dockerfile b/linux/atlassian/jira/8/8.13.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.13.0/Dockerfile +++ b/linux/atlassian/jira/8/8.13.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.13.1/Dockerfile b/linux/atlassian/jira/8/8.13.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.13.1/Dockerfile +++ b/linux/atlassian/jira/8/8.13.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.13.2/Dockerfile b/linux/atlassian/jira/8/8.13.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.13.2/Dockerfile +++ b/linux/atlassian/jira/8/8.13.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.13.3/Dockerfile b/linux/atlassian/jira/8/8.13.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.13.3/Dockerfile +++ b/linux/atlassian/jira/8/8.13.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.13.4/Dockerfile b/linux/atlassian/jira/8/8.13.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.13.4/Dockerfile +++ b/linux/atlassian/jira/8/8.13.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.13.5/Dockerfile b/linux/atlassian/jira/8/8.13.5/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.13.5/Dockerfile +++ b/linux/atlassian/jira/8/8.13.5/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.13.6/Dockerfile b/linux/atlassian/jira/8/8.13.6/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.13.6/Dockerfile +++ b/linux/atlassian/jira/8/8.13.6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.13.7/Dockerfile b/linux/atlassian/jira/8/8.13.7/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.13.7/Dockerfile +++ b/linux/atlassian/jira/8/8.13.7/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.14.0/Dockerfile b/linux/atlassian/jira/8/8.14.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.14.0/Dockerfile +++ b/linux/atlassian/jira/8/8.14.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.14.1/Dockerfile b/linux/atlassian/jira/8/8.14.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.14.1/Dockerfile +++ b/linux/atlassian/jira/8/8.14.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.15.0/Dockerfile b/linux/atlassian/jira/8/8.15.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.15.0/Dockerfile +++ b/linux/atlassian/jira/8/8.15.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.15.1/Dockerfile b/linux/atlassian/jira/8/8.15.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.15.1/Dockerfile +++ b/linux/atlassian/jira/8/8.15.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.16.0/Dockerfile b/linux/atlassian/jira/8/8.16.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.16.0/Dockerfile +++ b/linux/atlassian/jira/8/8.16.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.16.1/Dockerfile b/linux/atlassian/jira/8/8.16.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.16.1/Dockerfile +++ b/linux/atlassian/jira/8/8.16.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.17.0/Dockerfile b/linux/atlassian/jira/8/8.17.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.17.0/Dockerfile +++ b/linux/atlassian/jira/8/8.17.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.0/Dockerfile b/linux/atlassian/jira/8/8.2.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.2.0/Dockerfile +++ b/linux/atlassian/jira/8/8.2.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.1/Dockerfile b/linux/atlassian/jira/8/8.2.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.2.1/Dockerfile +++ b/linux/atlassian/jira/8/8.2.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.2/Dockerfile b/linux/atlassian/jira/8/8.2.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.2.2/Dockerfile +++ b/linux/atlassian/jira/8/8.2.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.3/Dockerfile b/linux/atlassian/jira/8/8.2.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.2.3/Dockerfile +++ b/linux/atlassian/jira/8/8.2.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.4/Dockerfile b/linux/atlassian/jira/8/8.2.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.2.4/Dockerfile +++ b/linux/atlassian/jira/8/8.2.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.5/Dockerfile b/linux/atlassian/jira/8/8.2.5/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.2.5/Dockerfile +++ b/linux/atlassian/jira/8/8.2.5/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.6/Dockerfile b/linux/atlassian/jira/8/8.2.6/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.2.6/Dockerfile +++ b/linux/atlassian/jira/8/8.2.6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.0/Dockerfile b/linux/atlassian/jira/8/8.3.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.3.0/Dockerfile +++ b/linux/atlassian/jira/8/8.3.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.1/Dockerfile b/linux/atlassian/jira/8/8.3.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.3.1/Dockerfile +++ b/linux/atlassian/jira/8/8.3.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.2/Dockerfile b/linux/atlassian/jira/8/8.3.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.3.2/Dockerfile +++ b/linux/atlassian/jira/8/8.3.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.3/Dockerfile b/linux/atlassian/jira/8/8.3.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.3.3/Dockerfile +++ b/linux/atlassian/jira/8/8.3.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.4/Dockerfile b/linux/atlassian/jira/8/8.3.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.3.4/Dockerfile +++ b/linux/atlassian/jira/8/8.3.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.5/Dockerfile b/linux/atlassian/jira/8/8.3.5/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.3.5/Dockerfile +++ b/linux/atlassian/jira/8/8.3.5/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.4.0/Dockerfile b/linux/atlassian/jira/8/8.4.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.4.0/Dockerfile +++ b/linux/atlassian/jira/8/8.4.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.4.1/Dockerfile b/linux/atlassian/jira/8/8.4.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.4.1/Dockerfile +++ b/linux/atlassian/jira/8/8.4.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.4.2/Dockerfile b/linux/atlassian/jira/8/8.4.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.4.2/Dockerfile +++ b/linux/atlassian/jira/8/8.4.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.4.3/Dockerfile b/linux/atlassian/jira/8/8.4.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.4.3/Dockerfile +++ b/linux/atlassian/jira/8/8.4.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.0/Dockerfile b/linux/atlassian/jira/8/8.5.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.0/Dockerfile +++ b/linux/atlassian/jira/8/8.5.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.1/Dockerfile b/linux/atlassian/jira/8/8.5.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.1/Dockerfile +++ b/linux/atlassian/jira/8/8.5.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.10/Dockerfile b/linux/atlassian/jira/8/8.5.10/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.10/Dockerfile +++ b/linux/atlassian/jira/8/8.5.10/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.11/Dockerfile b/linux/atlassian/jira/8/8.5.11/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.11/Dockerfile +++ b/linux/atlassian/jira/8/8.5.11/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.12/Dockerfile b/linux/atlassian/jira/8/8.5.12/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.12/Dockerfile +++ b/linux/atlassian/jira/8/8.5.12/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.13/Dockerfile b/linux/atlassian/jira/8/8.5.13/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.13/Dockerfile +++ b/linux/atlassian/jira/8/8.5.13/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.14/Dockerfile b/linux/atlassian/jira/8/8.5.14/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.14/Dockerfile +++ b/linux/atlassian/jira/8/8.5.14/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.15/Dockerfile b/linux/atlassian/jira/8/8.5.15/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.15/Dockerfile +++ b/linux/atlassian/jira/8/8.5.15/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.2/Dockerfile b/linux/atlassian/jira/8/8.5.2/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.2/Dockerfile +++ b/linux/atlassian/jira/8/8.5.2/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.3/Dockerfile b/linux/atlassian/jira/8/8.5.3/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.3/Dockerfile +++ b/linux/atlassian/jira/8/8.5.3/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.4/Dockerfile b/linux/atlassian/jira/8/8.5.4/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.4/Dockerfile +++ b/linux/atlassian/jira/8/8.5.4/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.5/Dockerfile b/linux/atlassian/jira/8/8.5.5/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.5/Dockerfile +++ b/linux/atlassian/jira/8/8.5.5/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.6/Dockerfile b/linux/atlassian/jira/8/8.5.6/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.6/Dockerfile +++ b/linux/atlassian/jira/8/8.5.6/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.7/Dockerfile b/linux/atlassian/jira/8/8.5.7/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.7/Dockerfile +++ b/linux/atlassian/jira/8/8.5.7/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.8/Dockerfile b/linux/atlassian/jira/8/8.5.8/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.8/Dockerfile +++ b/linux/atlassian/jira/8/8.5.8/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.9/Dockerfile b/linux/atlassian/jira/8/8.5.9/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.5.9/Dockerfile +++ b/linux/atlassian/jira/8/8.5.9/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.6.0/Dockerfile b/linux/atlassian/jira/8/8.6.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.6.0/Dockerfile +++ b/linux/atlassian/jira/8/8.6.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.6.1/Dockerfile b/linux/atlassian/jira/8/8.6.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.6.1/Dockerfile +++ b/linux/atlassian/jira/8/8.6.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.7.0/Dockerfile b/linux/atlassian/jira/8/8.7.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.7.0/Dockerfile +++ b/linux/atlassian/jira/8/8.7.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.7.1/Dockerfile b/linux/atlassian/jira/8/8.7.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.7.1/Dockerfile +++ b/linux/atlassian/jira/8/8.7.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.8.0/Dockerfile b/linux/atlassian/jira/8/8.8.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.8.0/Dockerfile +++ b/linux/atlassian/jira/8/8.8.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.8.1/Dockerfile b/linux/atlassian/jira/8/8.8.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.8.1/Dockerfile +++ b/linux/atlassian/jira/8/8.8.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.9.0/Dockerfile b/linux/atlassian/jira/8/8.9.0/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.9.0/Dockerfile +++ b/linux/atlassian/jira/8/8.9.0/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.9.1/Dockerfile b/linux/atlassian/jira/8/8.9.1/Dockerfile index b04d36d00..eeec7c1d8 100644 --- a/linux/atlassian/jira/8/8.9.1/Dockerfile +++ b/linux/atlassian/jira/8/8.9.1/Dockerfile @@ -37,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/latest/Dockerfile b/linux/atlassian/jira/latest/Dockerfile index e6aec1787..b856a7fb9 100644 --- a/linux/atlassian/jira/latest/Dockerfile +++ b/linux/atlassian/jira/latest/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive ################################################################## # ARGuments ################################################################## -ARG JIRA_VERSION=8.16.0 +ARG JIRA_VERSION=8.17.0 ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz ################################################################## diff --git a/linux/atlassian/jira/latest/Dockerfile.jdk11 b/linux/atlassian/jira/latest/Dockerfile.jdk11 index 90846ef5a..d85b2120b 100644 --- a/linux/atlassian/jira/latest/Dockerfile.jdk11 +++ b/linux/atlassian/jira/latest/Dockerfile.jdk11 @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive ################################################################## # ARGuments ################################################################## -ARG JIRA_VERSION=8.16.0 +ARG JIRA_VERSION=8.17.0 ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz ################################################################## @@ -34,7 +34,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ From df3adbd8bcc757063672222501ac9872271f6ac9 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 01:26:15 +0300 Subject: [PATCH 014/144] old jira images url fix --- linux/atlassian/jira/5/5.0.1/.env | 2 +- linux/atlassian/jira/5/5.0.2/.env | 2 +- linux/atlassian/jira/5/5.0.3/.env | 2 +- linux/atlassian/jira/5/5.0.4/.env | 2 +- linux/atlassian/jira/5/5.0.5/.env | 2 +- linux/atlassian/jira/5/5.0.6/.env | 2 +- linux/atlassian/jira/5/5.0.7/.env | 2 +- linux/atlassian/jira/5/5.0/.env | 2 +- linux/atlassian/jira/5/5.1.1/.env | 2 +- linux/atlassian/jira/5/5.1.2/.env | 2 +- linux/atlassian/jira/5/5.1.3/.env | 2 +- linux/atlassian/jira/5/5.1.4/.env | 2 +- linux/atlassian/jira/5/5.1.5/.env | 2 +- linux/atlassian/jira/5/5.1.6/.env | 2 +- linux/atlassian/jira/5/5.1.7/.env | 2 +- linux/atlassian/jira/5/5.1.8/.env | 2 +- linux/atlassian/jira/5/5.1/.env | 2 +- linux/atlassian/jira/5/5.2.1/.env | 2 +- linux/atlassian/jira/5/5.2.10/.env | 2 +- linux/atlassian/jira/5/5.2.11/.env | 2 +- linux/atlassian/jira/5/5.2.2/.env | 2 +- linux/atlassian/jira/5/5.2.3/.env | 2 +- linux/atlassian/jira/5/5.2.4.1/.env | 2 +- linux/atlassian/jira/5/5.2.4/.env | 2 +- linux/atlassian/jira/5/5.2.5/.env | 2 +- linux/atlassian/jira/5/5.2.6/.env | 2 +- linux/atlassian/jira/5/5.2.7/.env | 2 +- linux/atlassian/jira/5/5.2.8/.env | 2 +- linux/atlassian/jira/5/5.2.9/.env | 2 +- linux/atlassian/jira/5/5.2/.env | 2 +- linux/atlassian/jira/6/6.0.1/.env | 2 +- linux/atlassian/jira/6/6.0.2/.env | 2 +- linux/atlassian/jira/6/6.0.3/.env | 2 +- linux/atlassian/jira/6/6.0.4/.env | 2 +- linux/atlassian/jira/6/6.0.5/.env | 2 +- linux/atlassian/jira/6/6.0.6/.env | 2 +- linux/atlassian/jira/6/6.0.7/.env | 2 +- linux/atlassian/jira/6/6.0.8/.env | 2 +- linux/atlassian/jira/6/6.0/.env | 2 +- linux/atlassian/jira/6/6.1.1/.env | 2 +- linux/atlassian/jira/6/6.1.2/.env | 2 +- linux/atlassian/jira/6/6.1.3/.env | 2 +- linux/atlassian/jira/6/6.1.4/.env | 2 +- linux/atlassian/jira/6/6.1.5/.env | 2 +- linux/atlassian/jira/6/6.1.6/.env | 2 +- linux/atlassian/jira/6/6.1.7/.env | 2 +- linux/atlassian/jira/6/6.1.8/.env | 2 +- linux/atlassian/jira/6/6.1.9/.env | 2 +- linux/atlassian/jira/6/6.1/.env | 2 +- linux/atlassian/jira/6/6.2.1/.env | 2 +- linux/atlassian/jira/6/6.2.2/.env | 2 +- linux/atlassian/jira/6/6.2.3/.env | 2 +- linux/atlassian/jira/6/6.2.4/.env | 2 +- linux/atlassian/jira/6/6.2.5/.env | 2 +- linux/atlassian/jira/6/6.2.6/.env | 2 +- linux/atlassian/jira/6/6.2.7/.env | 2 +- linux/atlassian/jira/6/6.2/.env | 2 +- linux/atlassian/jira/6/6.3.1/.env | 2 +- linux/atlassian/jira/6/6.3.10/.env | 2 +- linux/atlassian/jira/6/6.3.11/.env | 2 +- linux/atlassian/jira/6/6.3.12/.env | 2 +- linux/atlassian/jira/6/6.3.13/.env | 2 +- linux/atlassian/jira/6/6.3.14/.env | 2 +- linux/atlassian/jira/6/6.3.15/.env | 2 +- linux/atlassian/jira/6/6.3.3/.env | 2 +- linux/atlassian/jira/6/6.3.4/.env | 2 +- linux/atlassian/jira/6/6.3.5/.env | 2 +- linux/atlassian/jira/6/6.3.6/.env | 2 +- linux/atlassian/jira/6/6.3.7/.env | 2 +- linux/atlassian/jira/6/6.3.8/.env | 2 +- linux/atlassian/jira/6/6.3.9/.env | 2 +- linux/atlassian/jira/6/6.3/.env | 2 +- linux/atlassian/jira/6/6.4.1/.env | 2 +- linux/atlassian/jira/6/6.4.10/.env | 2 +- linux/atlassian/jira/6/6.4.11/.env | 2 +- linux/atlassian/jira/6/6.4.12/.env | 2 +- linux/atlassian/jira/6/6.4.13/.env | 2 +- linux/atlassian/jira/6/6.4.14/.env | 2 +- linux/atlassian/jira/6/6.4.2/.env | 2 +- linux/atlassian/jira/6/6.4.3/.env | 2 +- linux/atlassian/jira/6/6.4.4/.env | 2 +- linux/atlassian/jira/6/6.4.5/.env | 2 +- linux/atlassian/jira/6/6.4.6/.env | 2 +- linux/atlassian/jira/6/6.4.7/.env | 2 +- linux/atlassian/jira/6/6.4.8/.env | 2 +- linux/atlassian/jira/6/6.4.9/.env | 2 +- linux/atlassian/jira/6/6.4/.env | 2 +- 87 files changed, 87 insertions(+), 87 deletions(-) diff --git a/linux/atlassian/jira/5/5.0.1/.env b/linux/atlassian/jira/5/5.0.1/.env index 32348a284..3db0c602d 100644 --- a/linux/atlassian/jira/5/5.0.1/.env +++ b/linux/atlassian/jira/5/5.0.1/.env @@ -1,3 +1,3 @@ RELEASE=5.0.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.1.tar.gz diff --git a/linux/atlassian/jira/5/5.0.2/.env b/linux/atlassian/jira/5/5.0.2/.env index f71873d96..952bfaa16 100644 --- a/linux/atlassian/jira/5/5.0.2/.env +++ b/linux/atlassian/jira/5/5.0.2/.env @@ -1,3 +1,3 @@ RELEASE=5.0.2 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.2-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.2.tar.gz diff --git a/linux/atlassian/jira/5/5.0.3/.env b/linux/atlassian/jira/5/5.0.3/.env index b8951da6e..45d60e4d2 100644 --- a/linux/atlassian/jira/5/5.0.3/.env +++ b/linux/atlassian/jira/5/5.0.3/.env @@ -1,3 +1,3 @@ RELEASE=5.0.3 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.3-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.3.tar.gz diff --git a/linux/atlassian/jira/5/5.0.4/.env b/linux/atlassian/jira/5/5.0.4/.env index 7565ad040..9769b8f1f 100644 --- a/linux/atlassian/jira/5/5.0.4/.env +++ b/linux/atlassian/jira/5/5.0.4/.env @@ -1,3 +1,3 @@ RELEASE=5.0.4 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.4-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.4.tar.gz diff --git a/linux/atlassian/jira/5/5.0.5/.env b/linux/atlassian/jira/5/5.0.5/.env index 45de0f223..ed3b88cfb 100644 --- a/linux/atlassian/jira/5/5.0.5/.env +++ b/linux/atlassian/jira/5/5.0.5/.env @@ -1,3 +1,3 @@ RELEASE=5.0.5 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.5-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.5.tar.gz diff --git a/linux/atlassian/jira/5/5.0.6/.env b/linux/atlassian/jira/5/5.0.6/.env index b9c74a5ff..a05dac17d 100644 --- a/linux/atlassian/jira/5/5.0.6/.env +++ b/linux/atlassian/jira/5/5.0.6/.env @@ -1,3 +1,3 @@ RELEASE=5.0.6 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.6-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.6.tar.gz diff --git a/linux/atlassian/jira/5/5.0.7/.env b/linux/atlassian/jira/5/5.0.7/.env index 2555f4209..d462ade07 100644 --- a/linux/atlassian/jira/5/5.0.7/.env +++ b/linux/atlassian/jira/5/5.0.7/.env @@ -1,3 +1,3 @@ RELEASE=5.0.7 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.7-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.7.tar.gz diff --git a/linux/atlassian/jira/5/5.0/.env b/linux/atlassian/jira/5/5.0/.env index f3efc19f2..07add1c95 100644 --- a/linux/atlassian/jira/5/5.0/.env +++ b/linux/atlassian/jira/5/5.0/.env @@ -1,3 +1,3 @@ RELEASE=5.0 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.0.tar.gz diff --git a/linux/atlassian/jira/5/5.1.1/.env b/linux/atlassian/jira/5/5.1.1/.env index 452d1f88f..10957a878 100644 --- a/linux/atlassian/jira/5/5.1.1/.env +++ b/linux/atlassian/jira/5/5.1.1/.env @@ -1,3 +1,3 @@ RELEASE=5.1.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.1.tar.gz diff --git a/linux/atlassian/jira/5/5.1.2/.env b/linux/atlassian/jira/5/5.1.2/.env index 3a563c2f8..1e7fd1c04 100644 --- a/linux/atlassian/jira/5/5.1.2/.env +++ b/linux/atlassian/jira/5/5.1.2/.env @@ -1,3 +1,3 @@ RELEASE=5.1.2 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.2-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.2.tar.gz diff --git a/linux/atlassian/jira/5/5.1.3/.env b/linux/atlassian/jira/5/5.1.3/.env index 180868b1d..1d4a0c5f5 100644 --- a/linux/atlassian/jira/5/5.1.3/.env +++ b/linux/atlassian/jira/5/5.1.3/.env @@ -1,3 +1,3 @@ RELEASE=5.1.3 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.3-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.3.tar.gz diff --git a/linux/atlassian/jira/5/5.1.4/.env b/linux/atlassian/jira/5/5.1.4/.env index 6bc0c2b4a..81e2ac57d 100644 --- a/linux/atlassian/jira/5/5.1.4/.env +++ b/linux/atlassian/jira/5/5.1.4/.env @@ -1,3 +1,3 @@ RELEASE=5.1.4 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.4-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.4.tar.gz diff --git a/linux/atlassian/jira/5/5.1.5/.env b/linux/atlassian/jira/5/5.1.5/.env index d14b9657d..55269c5da 100644 --- a/linux/atlassian/jira/5/5.1.5/.env +++ b/linux/atlassian/jira/5/5.1.5/.env @@ -1,3 +1,3 @@ RELEASE=5.1.5 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.5-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.5.tar.gz diff --git a/linux/atlassian/jira/5/5.1.6/.env b/linux/atlassian/jira/5/5.1.6/.env index 578988068..b3d091ebd 100644 --- a/linux/atlassian/jira/5/5.1.6/.env +++ b/linux/atlassian/jira/5/5.1.6/.env @@ -1,3 +1,3 @@ RELEASE=5.1.6 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.6-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.6.tar.gz diff --git a/linux/atlassian/jira/5/5.1.7/.env b/linux/atlassian/jira/5/5.1.7/.env index f329036e0..64a375869 100644 --- a/linux/atlassian/jira/5/5.1.7/.env +++ b/linux/atlassian/jira/5/5.1.7/.env @@ -1,3 +1,3 @@ RELEASE=5.1.7 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.7-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.7.tar.gz diff --git a/linux/atlassian/jira/5/5.1.8/.env b/linux/atlassian/jira/5/5.1.8/.env index 19189e98c..b569fe583 100644 --- a/linux/atlassian/jira/5/5.1.8/.env +++ b/linux/atlassian/jira/5/5.1.8/.env @@ -1,3 +1,3 @@ RELEASE=5.1.8 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.8-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.8.tar.gz diff --git a/linux/atlassian/jira/5/5.1/.env b/linux/atlassian/jira/5/5.1/.env index 97a26d82a..1b0a81391 100644 --- a/linux/atlassian/jira/5/5.1/.env +++ b/linux/atlassian/jira/5/5.1/.env @@ -1,3 +1,3 @@ RELEASE=5.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.1.tar.gz diff --git a/linux/atlassian/jira/5/5.2.1/.env b/linux/atlassian/jira/5/5.2.1/.env index a61d1af0c..d1bb06901 100644 --- a/linux/atlassian/jira/5/5.2.1/.env +++ b/linux/atlassian/jira/5/5.2.1/.env @@ -1,3 +1,3 @@ RELEASE=5.2.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.1.tar.gz diff --git a/linux/atlassian/jira/5/5.2.10/.env b/linux/atlassian/jira/5/5.2.10/.env index b92197745..974c60fef 100644 --- a/linux/atlassian/jira/5/5.2.10/.env +++ b/linux/atlassian/jira/5/5.2.10/.env @@ -1,3 +1,3 @@ RELEASE=5.2.10 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.10-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.10.tar.gz diff --git a/linux/atlassian/jira/5/5.2.11/.env b/linux/atlassian/jira/5/5.2.11/.env index 1fef4f9af..f8b6f6109 100644 --- a/linux/atlassian/jira/5/5.2.11/.env +++ b/linux/atlassian/jira/5/5.2.11/.env @@ -1,3 +1,3 @@ RELEASE=5.2.11 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.11-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.11.tar.gz diff --git a/linux/atlassian/jira/5/5.2.2/.env b/linux/atlassian/jira/5/5.2.2/.env index 4ec748460..7f75f0c6c 100644 --- a/linux/atlassian/jira/5/5.2.2/.env +++ b/linux/atlassian/jira/5/5.2.2/.env @@ -1,3 +1,3 @@ RELEASE=5.2.2 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.2-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.2.tar.gz diff --git a/linux/atlassian/jira/5/5.2.3/.env b/linux/atlassian/jira/5/5.2.3/.env index bc91b8bf2..4f88f79ee 100644 --- a/linux/atlassian/jira/5/5.2.3/.env +++ b/linux/atlassian/jira/5/5.2.3/.env @@ -1,3 +1,3 @@ RELEASE=5.2.3 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.3-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.3.tar.gz diff --git a/linux/atlassian/jira/5/5.2.4.1/.env b/linux/atlassian/jira/5/5.2.4.1/.env index c03be146a..ee8e11d88 100644 --- a/linux/atlassian/jira/5/5.2.4.1/.env +++ b/linux/atlassian/jira/5/5.2.4.1/.env @@ -1,3 +1,3 @@ RELEASE=5.2.4.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.4.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.4.1.tar.gz diff --git a/linux/atlassian/jira/5/5.2.4/.env b/linux/atlassian/jira/5/5.2.4/.env index 574d6530c..5d17ba041 100644 --- a/linux/atlassian/jira/5/5.2.4/.env +++ b/linux/atlassian/jira/5/5.2.4/.env @@ -1,3 +1,3 @@ RELEASE=5.2.4 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.4-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.4.tar.gz diff --git a/linux/atlassian/jira/5/5.2.5/.env b/linux/atlassian/jira/5/5.2.5/.env index 42ff7fb8f..518f063b8 100644 --- a/linux/atlassian/jira/5/5.2.5/.env +++ b/linux/atlassian/jira/5/5.2.5/.env @@ -1,3 +1,3 @@ RELEASE=5.2.5 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.5-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.5.tar.gz diff --git a/linux/atlassian/jira/5/5.2.6/.env b/linux/atlassian/jira/5/5.2.6/.env index f7cfb4858..e2b39f6d1 100644 --- a/linux/atlassian/jira/5/5.2.6/.env +++ b/linux/atlassian/jira/5/5.2.6/.env @@ -1,3 +1,3 @@ RELEASE=5.2.6 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.6-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.6.tar.gz diff --git a/linux/atlassian/jira/5/5.2.7/.env b/linux/atlassian/jira/5/5.2.7/.env index 58c1c2c87..9e5196c33 100644 --- a/linux/atlassian/jira/5/5.2.7/.env +++ b/linux/atlassian/jira/5/5.2.7/.env @@ -1,3 +1,3 @@ RELEASE=5.2.7 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.7-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.7.tar.gz diff --git a/linux/atlassian/jira/5/5.2.8/.env b/linux/atlassian/jira/5/5.2.8/.env index 291647df6..6aa567db6 100644 --- a/linux/atlassian/jira/5/5.2.8/.env +++ b/linux/atlassian/jira/5/5.2.8/.env @@ -1,3 +1,3 @@ RELEASE=5.2.8 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.8-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.8.tar.gz diff --git a/linux/atlassian/jira/5/5.2.9/.env b/linux/atlassian/jira/5/5.2.9/.env index 200818cb8..37375d00c 100644 --- a/linux/atlassian/jira/5/5.2.9/.env +++ b/linux/atlassian/jira/5/5.2.9/.env @@ -1,3 +1,3 @@ RELEASE=5.2.9 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.9-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.9.tar.gz diff --git a/linux/atlassian/jira/5/5.2/.env b/linux/atlassian/jira/5/5.2/.env index fd6592470..5dc551bed 100644 --- a/linux/atlassian/jira/5/5.2/.env +++ b/linux/atlassian/jira/5/5.2/.env @@ -1,3 +1,3 @@ RELEASE=5.2 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-5.2.tar.gz diff --git a/linux/atlassian/jira/6/6.0.1/.env b/linux/atlassian/jira/6/6.0.1/.env index ce7d3fe65..4b97e151c 100644 --- a/linux/atlassian/jira/6/6.0.1/.env +++ b/linux/atlassian/jira/6/6.0.1/.env @@ -1,3 +1,3 @@ RELEASE=6.0.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.1.tar.gz diff --git a/linux/atlassian/jira/6/6.0.2/.env b/linux/atlassian/jira/6/6.0.2/.env index ecb03a7b5..42ac1391f 100644 --- a/linux/atlassian/jira/6/6.0.2/.env +++ b/linux/atlassian/jira/6/6.0.2/.env @@ -1,3 +1,3 @@ RELEASE=6.0.2 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.2-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.2.tar.gz diff --git a/linux/atlassian/jira/6/6.0.3/.env b/linux/atlassian/jira/6/6.0.3/.env index cfe00f7d5..01596b8e3 100644 --- a/linux/atlassian/jira/6/6.0.3/.env +++ b/linux/atlassian/jira/6/6.0.3/.env @@ -1,3 +1,3 @@ RELEASE=6.0.3 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.3-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.3.tar.gz diff --git a/linux/atlassian/jira/6/6.0.4/.env b/linux/atlassian/jira/6/6.0.4/.env index f49441bde..b33e7b4ad 100644 --- a/linux/atlassian/jira/6/6.0.4/.env +++ b/linux/atlassian/jira/6/6.0.4/.env @@ -1,3 +1,3 @@ RELEASE=6.0.4 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.4-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.4.tar.gz diff --git a/linux/atlassian/jira/6/6.0.5/.env b/linux/atlassian/jira/6/6.0.5/.env index e124d1ec8..e6bb658f8 100644 --- a/linux/atlassian/jira/6/6.0.5/.env +++ b/linux/atlassian/jira/6/6.0.5/.env @@ -1,3 +1,3 @@ RELEASE=6.0.5 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.5-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.5.tar.gz diff --git a/linux/atlassian/jira/6/6.0.6/.env b/linux/atlassian/jira/6/6.0.6/.env index cd09ad26a..cff237264 100644 --- a/linux/atlassian/jira/6/6.0.6/.env +++ b/linux/atlassian/jira/6/6.0.6/.env @@ -1,3 +1,3 @@ RELEASE=6.0.6 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.6-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.6.tar.gz diff --git a/linux/atlassian/jira/6/6.0.7/.env b/linux/atlassian/jira/6/6.0.7/.env index 96b403562..3689dfe94 100644 --- a/linux/atlassian/jira/6/6.0.7/.env +++ b/linux/atlassian/jira/6/6.0.7/.env @@ -1,3 +1,3 @@ RELEASE=6.0.7 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.7-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.7.tar.gz diff --git a/linux/atlassian/jira/6/6.0.8/.env b/linux/atlassian/jira/6/6.0.8/.env index 3c7f7a4a9..a8d8c1db6 100644 --- a/linux/atlassian/jira/6/6.0.8/.env +++ b/linux/atlassian/jira/6/6.0.8/.env @@ -1,3 +1,3 @@ RELEASE=6.0.8 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.8-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.8.tar.gz diff --git a/linux/atlassian/jira/6/6.0/.env b/linux/atlassian/jira/6/6.0/.env index f46c56fbe..5a4c8f6ed 100644 --- a/linux/atlassian/jira/6/6.0/.env +++ b/linux/atlassian/jira/6/6.0/.env @@ -1,3 +1,3 @@ RELEASE=6.0 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.0.tar.gz diff --git a/linux/atlassian/jira/6/6.1.1/.env b/linux/atlassian/jira/6/6.1.1/.env index a12a8f72e..462b6c3d3 100644 --- a/linux/atlassian/jira/6/6.1.1/.env +++ b/linux/atlassian/jira/6/6.1.1/.env @@ -1,3 +1,3 @@ RELEASE=6.1.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.1.tar.gz diff --git a/linux/atlassian/jira/6/6.1.2/.env b/linux/atlassian/jira/6/6.1.2/.env index f9320266d..4b2ae3a29 100644 --- a/linux/atlassian/jira/6/6.1.2/.env +++ b/linux/atlassian/jira/6/6.1.2/.env @@ -1,3 +1,3 @@ RELEASE=6.1.2 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.2-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.2.tar.gz diff --git a/linux/atlassian/jira/6/6.1.3/.env b/linux/atlassian/jira/6/6.1.3/.env index 81e1dff94..7492d53a9 100644 --- a/linux/atlassian/jira/6/6.1.3/.env +++ b/linux/atlassian/jira/6/6.1.3/.env @@ -1,3 +1,3 @@ RELEASE=6.1.3 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.3-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.3.tar.gz diff --git a/linux/atlassian/jira/6/6.1.4/.env b/linux/atlassian/jira/6/6.1.4/.env index 6d11eacc2..afe26826b 100644 --- a/linux/atlassian/jira/6/6.1.4/.env +++ b/linux/atlassian/jira/6/6.1.4/.env @@ -1,3 +1,3 @@ RELEASE=6.1.4 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.4-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.4.tar.gz diff --git a/linux/atlassian/jira/6/6.1.5/.env b/linux/atlassian/jira/6/6.1.5/.env index ed36ad2be..d6fa9e9e8 100644 --- a/linux/atlassian/jira/6/6.1.5/.env +++ b/linux/atlassian/jira/6/6.1.5/.env @@ -1,3 +1,3 @@ RELEASE=6.1.5 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.5-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.5.tar.gz diff --git a/linux/atlassian/jira/6/6.1.6/.env b/linux/atlassian/jira/6/6.1.6/.env index 19df26917..e85e714fa 100644 --- a/linux/atlassian/jira/6/6.1.6/.env +++ b/linux/atlassian/jira/6/6.1.6/.env @@ -1,3 +1,3 @@ RELEASE=6.1.6 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.6-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.6.tar.gz diff --git a/linux/atlassian/jira/6/6.1.7/.env b/linux/atlassian/jira/6/6.1.7/.env index 5d3af75c2..dd3e4ef11 100644 --- a/linux/atlassian/jira/6/6.1.7/.env +++ b/linux/atlassian/jira/6/6.1.7/.env @@ -1,3 +1,3 @@ RELEASE=6.1.7 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.7-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.7.tar.gz diff --git a/linux/atlassian/jira/6/6.1.8/.env b/linux/atlassian/jira/6/6.1.8/.env index 9fd53a51f..dd5ba9a39 100644 --- a/linux/atlassian/jira/6/6.1.8/.env +++ b/linux/atlassian/jira/6/6.1.8/.env @@ -1,3 +1,3 @@ RELEASE=6.1.8 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.8-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.8.tar.gz diff --git a/linux/atlassian/jira/6/6.1.9/.env b/linux/atlassian/jira/6/6.1.9/.env index 2e02d098e..5a324e741 100644 --- a/linux/atlassian/jira/6/6.1.9/.env +++ b/linux/atlassian/jira/6/6.1.9/.env @@ -1,3 +1,3 @@ RELEASE=6.1.9 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.9-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.9.tar.gz diff --git a/linux/atlassian/jira/6/6.1/.env b/linux/atlassian/jira/6/6.1/.env index d4c72174e..90e2ceb4a 100644 --- a/linux/atlassian/jira/6/6.1/.env +++ b/linux/atlassian/jira/6/6.1/.env @@ -1,3 +1,3 @@ RELEASE=6.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.1.tar.gz diff --git a/linux/atlassian/jira/6/6.2.1/.env b/linux/atlassian/jira/6/6.2.1/.env index fd2af7de2..2dbe02959 100644 --- a/linux/atlassian/jira/6/6.2.1/.env +++ b/linux/atlassian/jira/6/6.2.1/.env @@ -1,3 +1,3 @@ RELEASE=6.2.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.1.tar.gz diff --git a/linux/atlassian/jira/6/6.2.2/.env b/linux/atlassian/jira/6/6.2.2/.env index eadcc098c..a6ff9dfd5 100644 --- a/linux/atlassian/jira/6/6.2.2/.env +++ b/linux/atlassian/jira/6/6.2.2/.env @@ -1,3 +1,3 @@ RELEASE=6.2.2 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.2-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.2.tar.gz diff --git a/linux/atlassian/jira/6/6.2.3/.env b/linux/atlassian/jira/6/6.2.3/.env index 5d7ef117e..2fd952377 100644 --- a/linux/atlassian/jira/6/6.2.3/.env +++ b/linux/atlassian/jira/6/6.2.3/.env @@ -1,3 +1,3 @@ RELEASE=6.2.3 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.3-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.3.tar.gz diff --git a/linux/atlassian/jira/6/6.2.4/.env b/linux/atlassian/jira/6/6.2.4/.env index 93ded70a6..c92a5299d 100644 --- a/linux/atlassian/jira/6/6.2.4/.env +++ b/linux/atlassian/jira/6/6.2.4/.env @@ -1,3 +1,3 @@ RELEASE=6.2.4 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.4-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.4.tar.gz diff --git a/linux/atlassian/jira/6/6.2.5/.env b/linux/atlassian/jira/6/6.2.5/.env index 4bc32a43e..d59b6c601 100644 --- a/linux/atlassian/jira/6/6.2.5/.env +++ b/linux/atlassian/jira/6/6.2.5/.env @@ -1,3 +1,3 @@ RELEASE=6.2.5 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.5-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.5.tar.gz diff --git a/linux/atlassian/jira/6/6.2.6/.env b/linux/atlassian/jira/6/6.2.6/.env index 0bb4d5cb9..a8eb37673 100644 --- a/linux/atlassian/jira/6/6.2.6/.env +++ b/linux/atlassian/jira/6/6.2.6/.env @@ -1,3 +1,3 @@ RELEASE=6.2.6 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.6-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.6.tar.gz diff --git a/linux/atlassian/jira/6/6.2.7/.env b/linux/atlassian/jira/6/6.2.7/.env index cce09ff61..f039390c2 100644 --- a/linux/atlassian/jira/6/6.2.7/.env +++ b/linux/atlassian/jira/6/6.2.7/.env @@ -1,3 +1,3 @@ RELEASE=6.2.7 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.7-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.7.tar.gz diff --git a/linux/atlassian/jira/6/6.2/.env b/linux/atlassian/jira/6/6.2/.env index 72a26be92..9fe309041 100644 --- a/linux/atlassian/jira/6/6.2/.env +++ b/linux/atlassian/jira/6/6.2/.env @@ -1,3 +1,3 @@ RELEASE=6.2 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.2.tar.gz diff --git a/linux/atlassian/jira/6/6.3.1/.env b/linux/atlassian/jira/6/6.3.1/.env index cce1312e7..758441be8 100644 --- a/linux/atlassian/jira/6/6.3.1/.env +++ b/linux/atlassian/jira/6/6.3.1/.env @@ -1,3 +1,3 @@ RELEASE=6.3.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.1.tar.gz diff --git a/linux/atlassian/jira/6/6.3.10/.env b/linux/atlassian/jira/6/6.3.10/.env index 72c6b9156..e6204355d 100644 --- a/linux/atlassian/jira/6/6.3.10/.env +++ b/linux/atlassian/jira/6/6.3.10/.env @@ -1,3 +1,3 @@ RELEASE=6.3.10 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.10-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.10.tar.gz diff --git a/linux/atlassian/jira/6/6.3.11/.env b/linux/atlassian/jira/6/6.3.11/.env index 8f820ccc7..11abd60e5 100644 --- a/linux/atlassian/jira/6/6.3.11/.env +++ b/linux/atlassian/jira/6/6.3.11/.env @@ -1,3 +1,3 @@ RELEASE=6.3.11 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.11-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.11.tar.gz diff --git a/linux/atlassian/jira/6/6.3.12/.env b/linux/atlassian/jira/6/6.3.12/.env index 58f0b68a5..a93f861c8 100644 --- a/linux/atlassian/jira/6/6.3.12/.env +++ b/linux/atlassian/jira/6/6.3.12/.env @@ -1,3 +1,3 @@ RELEASE=6.3.12 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.12-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.12.tar.gz diff --git a/linux/atlassian/jira/6/6.3.13/.env b/linux/atlassian/jira/6/6.3.13/.env index 562f587d7..eebe4b2f1 100644 --- a/linux/atlassian/jira/6/6.3.13/.env +++ b/linux/atlassian/jira/6/6.3.13/.env @@ -1,3 +1,3 @@ RELEASE=6.3.13 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.13-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.13.tar.gz diff --git a/linux/atlassian/jira/6/6.3.14/.env b/linux/atlassian/jira/6/6.3.14/.env index 3c1323bae..505f355af 100644 --- a/linux/atlassian/jira/6/6.3.14/.env +++ b/linux/atlassian/jira/6/6.3.14/.env @@ -1,3 +1,3 @@ RELEASE=6.3.14 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.14-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.14.tar.gz diff --git a/linux/atlassian/jira/6/6.3.15/.env b/linux/atlassian/jira/6/6.3.15/.env index e9c265b6a..2a22f54f1 100644 --- a/linux/atlassian/jira/6/6.3.15/.env +++ b/linux/atlassian/jira/6/6.3.15/.env @@ -1,3 +1,3 @@ RELEASE=6.3.15 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.15-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.15.tar.gz diff --git a/linux/atlassian/jira/6/6.3.3/.env b/linux/atlassian/jira/6/6.3.3/.env index 94ec966c6..4bf513141 100644 --- a/linux/atlassian/jira/6/6.3.3/.env +++ b/linux/atlassian/jira/6/6.3.3/.env @@ -1,3 +1,3 @@ RELEASE=6.3.3 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.3-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.3.tar.gz diff --git a/linux/atlassian/jira/6/6.3.4/.env b/linux/atlassian/jira/6/6.3.4/.env index a5498f7f0..8b9acb95a 100644 --- a/linux/atlassian/jira/6/6.3.4/.env +++ b/linux/atlassian/jira/6/6.3.4/.env @@ -1,3 +1,3 @@ RELEASE=6.3.4 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.4-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.4.tar.gz diff --git a/linux/atlassian/jira/6/6.3.5/.env b/linux/atlassian/jira/6/6.3.5/.env index f5d69987e..9117b4147 100644 --- a/linux/atlassian/jira/6/6.3.5/.env +++ b/linux/atlassian/jira/6/6.3.5/.env @@ -1,3 +1,3 @@ RELEASE=6.3.5 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.5-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.5.tar.gz diff --git a/linux/atlassian/jira/6/6.3.6/.env b/linux/atlassian/jira/6/6.3.6/.env index 6ff089fab..5c3649aed 100644 --- a/linux/atlassian/jira/6/6.3.6/.env +++ b/linux/atlassian/jira/6/6.3.6/.env @@ -1,3 +1,3 @@ RELEASE=6.3.6 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.6-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.6.tar.gz diff --git a/linux/atlassian/jira/6/6.3.7/.env b/linux/atlassian/jira/6/6.3.7/.env index 98ba904b8..22db89291 100644 --- a/linux/atlassian/jira/6/6.3.7/.env +++ b/linux/atlassian/jira/6/6.3.7/.env @@ -1,3 +1,3 @@ RELEASE=6.3.7 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.7-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.7.tar.gz diff --git a/linux/atlassian/jira/6/6.3.8/.env b/linux/atlassian/jira/6/6.3.8/.env index b978a5e7c..97ea130c4 100644 --- a/linux/atlassian/jira/6/6.3.8/.env +++ b/linux/atlassian/jira/6/6.3.8/.env @@ -1,3 +1,3 @@ RELEASE=6.3.8 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.8-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.8.tar.gz diff --git a/linux/atlassian/jira/6/6.3.9/.env b/linux/atlassian/jira/6/6.3.9/.env index ff4feffc4..199e8c0d3 100644 --- a/linux/atlassian/jira/6/6.3.9/.env +++ b/linux/atlassian/jira/6/6.3.9/.env @@ -1,3 +1,3 @@ RELEASE=6.3.9 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.9-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.9.tar.gz diff --git a/linux/atlassian/jira/6/6.3/.env b/linux/atlassian/jira/6/6.3/.env index eb12a4890..74fbdb497 100644 --- a/linux/atlassian/jira/6/6.3/.env +++ b/linux/atlassian/jira/6/6.3/.env @@ -1,3 +1,3 @@ RELEASE=6.3 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.3.tar.gz diff --git a/linux/atlassian/jira/6/6.4.1/.env b/linux/atlassian/jira/6/6.4.1/.env index 1ca180e42..1c8ed7977 100644 --- a/linux/atlassian/jira/6/6.4.1/.env +++ b/linux/atlassian/jira/6/6.4.1/.env @@ -1,3 +1,3 @@ RELEASE=6.4.1 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.1-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.1.tar.gz diff --git a/linux/atlassian/jira/6/6.4.10/.env b/linux/atlassian/jira/6/6.4.10/.env index 9616ebcfe..91fdae6a4 100644 --- a/linux/atlassian/jira/6/6.4.10/.env +++ b/linux/atlassian/jira/6/6.4.10/.env @@ -1,3 +1,3 @@ RELEASE=6.4.10 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.10-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.10.tar.gz diff --git a/linux/atlassian/jira/6/6.4.11/.env b/linux/atlassian/jira/6/6.4.11/.env index 9abac8a6a..07deb34e5 100644 --- a/linux/atlassian/jira/6/6.4.11/.env +++ b/linux/atlassian/jira/6/6.4.11/.env @@ -1,3 +1,3 @@ RELEASE=6.4.11 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.11-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.11.tar.gz diff --git a/linux/atlassian/jira/6/6.4.12/.env b/linux/atlassian/jira/6/6.4.12/.env index 2f5cda99f..0900b5246 100644 --- a/linux/atlassian/jira/6/6.4.12/.env +++ b/linux/atlassian/jira/6/6.4.12/.env @@ -1,3 +1,3 @@ RELEASE=6.4.12 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.12-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.12.tar.gz diff --git a/linux/atlassian/jira/6/6.4.13/.env b/linux/atlassian/jira/6/6.4.13/.env index 818179942..e4fb35e9c 100644 --- a/linux/atlassian/jira/6/6.4.13/.env +++ b/linux/atlassian/jira/6/6.4.13/.env @@ -1,3 +1,3 @@ RELEASE=6.4.13 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.13-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.13.tar.gz diff --git a/linux/atlassian/jira/6/6.4.14/.env b/linux/atlassian/jira/6/6.4.14/.env index 796b08d88..cd870173f 100644 --- a/linux/atlassian/jira/6/6.4.14/.env +++ b/linux/atlassian/jira/6/6.4.14/.env @@ -1,3 +1,3 @@ RELEASE=6.4.14 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.14-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.14.tar.gz diff --git a/linux/atlassian/jira/6/6.4.2/.env b/linux/atlassian/jira/6/6.4.2/.env index 7685317b0..4c294baea 100644 --- a/linux/atlassian/jira/6/6.4.2/.env +++ b/linux/atlassian/jira/6/6.4.2/.env @@ -1,3 +1,3 @@ RELEASE=6.4.2 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.2-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.2.tar.gz diff --git a/linux/atlassian/jira/6/6.4.3/.env b/linux/atlassian/jira/6/6.4.3/.env index 9f2e2f073..1a99a4057 100644 --- a/linux/atlassian/jira/6/6.4.3/.env +++ b/linux/atlassian/jira/6/6.4.3/.env @@ -1,3 +1,3 @@ RELEASE=6.4.3 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.3-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.3.tar.gz diff --git a/linux/atlassian/jira/6/6.4.4/.env b/linux/atlassian/jira/6/6.4.4/.env index fbf48c1e1..bebd0e184 100644 --- a/linux/atlassian/jira/6/6.4.4/.env +++ b/linux/atlassian/jira/6/6.4.4/.env @@ -1,3 +1,3 @@ RELEASE=6.4.4 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.4-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.4.tar.gz diff --git a/linux/atlassian/jira/6/6.4.5/.env b/linux/atlassian/jira/6/6.4.5/.env index 394e1303b..3c713ac9e 100644 --- a/linux/atlassian/jira/6/6.4.5/.env +++ b/linux/atlassian/jira/6/6.4.5/.env @@ -1,3 +1,3 @@ RELEASE=6.4.5 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.5-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.5.tar.gz diff --git a/linux/atlassian/jira/6/6.4.6/.env b/linux/atlassian/jira/6/6.4.6/.env index 37b4e29ae..4b9cba14b 100644 --- a/linux/atlassian/jira/6/6.4.6/.env +++ b/linux/atlassian/jira/6/6.4.6/.env @@ -1,3 +1,3 @@ RELEASE=6.4.6 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.6-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.6.tar.gz diff --git a/linux/atlassian/jira/6/6.4.7/.env b/linux/atlassian/jira/6/6.4.7/.env index 61e357e69..c75e6cd68 100644 --- a/linux/atlassian/jira/6/6.4.7/.env +++ b/linux/atlassian/jira/6/6.4.7/.env @@ -1,3 +1,3 @@ RELEASE=6.4.7 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.7-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.7.tar.gz diff --git a/linux/atlassian/jira/6/6.4.8/.env b/linux/atlassian/jira/6/6.4.8/.env index 075010e8e..e82c2f232 100644 --- a/linux/atlassian/jira/6/6.4.8/.env +++ b/linux/atlassian/jira/6/6.4.8/.env @@ -1,3 +1,3 @@ RELEASE=6.4.8 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.8-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.8.tar.gz diff --git a/linux/atlassian/jira/6/6.4.9/.env b/linux/atlassian/jira/6/6.4.9/.env index 82ffee022..7c474321b 100644 --- a/linux/atlassian/jira/6/6.4.9/.env +++ b/linux/atlassian/jira/6/6.4.9/.env @@ -1,3 +1,3 @@ RELEASE=6.4.9 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.9-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.9.tar.gz diff --git a/linux/atlassian/jira/6/6.4/.env b/linux/atlassian/jira/6/6.4/.env index 6af44d925..c956a78c3 100644 --- a/linux/atlassian/jira/6/6.4/.env +++ b/linux/atlassian/jira/6/6.4/.env @@ -1,3 +1,3 @@ RELEASE=6.4 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4-war.tar.gz +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-6.4.tar.gz From 8d59cbc0567f301cc7a0296f5c9312d96c376a3b Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 02:43:49 +0300 Subject: [PATCH 015/144] NGINX_VERSION=1.20.0 --- linux/nginx/latest/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/nginx/latest/Dockerfile b/linux/nginx/latest/Dockerfile index fe651414c..a4132ddcb 100644 --- a/linux/nginx/latest/Dockerfile +++ b/linux/nginx/latest/Dockerfile @@ -11,7 +11,7 @@ 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_VERSION=1.20.0 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 From fd524c76a8046269f90aee96fb9db379d1fdae25 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 02:59:58 +0300 Subject: [PATCH 016/144] edit generator --- bin/dotnet/Epicmorg.DockerGenerator.csproj | 2 +- bin/dotnet/Program.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bin/dotnet/Epicmorg.DockerGenerator.csproj b/bin/dotnet/Epicmorg.DockerGenerator.csproj index 42ed1bdff..0bb737852 100644 --- a/bin/dotnet/Epicmorg.DockerGenerator.csproj +++ b/bin/dotnet/Epicmorg.DockerGenerator.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 diff --git a/bin/dotnet/Program.cs b/bin/dotnet/Program.cs index db1e74e74..77a211c0f 100644 --- a/bin/dotnet/Program.cs +++ b/bin/dotnet/Program.cs @@ -16,13 +16,14 @@ class Program /// 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) + 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.ToString().EndsWith(".tar.gz"))) + foreach (var item in items.Where(a=>a.ZipUrl.ToString().EndsWith(archiveType))) { var majorVersion = item.Version.Split(".").First(); var templatePath = Path.Combine(workdir.FullName, product, "templates", majorVersion); From 03195d06b5eb964c29e24bf05a9ade5fc3fe1a40 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 03:11:06 +0300 Subject: [PATCH 017/144] fisheye-crucible release --- CHANGELOG.md | 1 + .../fisheye-crucible/templates/2/Dockerfile | 49 ++++++++ .../fisheye-crucible/templates/2/Makefile | 5 + .../templates/2/docker-compose.yml | 9 ++ .../templates/2/entrypoint.sh | 33 +++++ .../fisheye-crucible/templates/3/Dockerfile | 49 ++++++++ .../fisheye-crucible/templates/3/Makefile | 5 + .../templates/3/docker-compose.yml | 9 ++ .../templates/3/entrypoint.sh | 33 +++++ .../fisheye-crucible/templates/4/Dockerfile | 49 ++++++++ .../fisheye-crucible/templates/4/Makefile | 5 + .../templates/4/docker-compose.yml | 9 ++ .../templates/4/entrypoint.sh | 33 +++++ .../fisheye-crucible/2/2.0.0.B3/.env | 3 + .../fisheye-crucible/2/2.0.0.B3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.0.B3/Makefile | 5 + .../2/2.0.0.B3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.0.0.B3/entrypoint.sh | 33 +++++ .../fisheye-crucible/2/2.0.0.RC1/.env | 3 + .../fisheye-crucible/2/2.0.0.RC1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.0.RC1/Makefile | 5 + .../2/2.0.0.RC1/docker-compose.yml | 9 ++ .../2/2.0.0.RC1/entrypoint.sh | 33 +++++ .../fisheye-crucible/2/2.0.0.RC2/.env | 3 + .../fisheye-crucible/2/2.0.0.RC2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.0.RC2/Makefile | 5 + .../2/2.0.0.RC2/docker-compose.yml | 9 ++ .../2/2.0.0.RC2/entrypoint.sh | 33 +++++ .../fisheye-crucible/2/2.0.0.RC3/.env | 3 + .../fisheye-crucible/2/2.0.0.RC3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.0.RC3/Makefile | 5 + .../2/2.0.0.RC3/docker-compose.yml | 9 ++ .../2/2.0.0.RC3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.0.0/.env | 3 + .../fisheye-crucible/2/2.0.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.0/Makefile | 5 + .../2/2.0.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.0.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.0.1/.env | 3 + .../fisheye-crucible/2/2.0.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.1/Makefile | 5 + .../2/2.0.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.0.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.0.2/.env | 3 + .../fisheye-crucible/2/2.0.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.2/Makefile | 5 + .../2/2.0.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.0.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.0.3/.env | 3 + .../fisheye-crucible/2/2.0.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.3/Makefile | 5 + .../2/2.0.3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.0.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.0.4/.env | 3 + .../fisheye-crucible/2/2.0.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.4/Makefile | 5 + .../2/2.0.4/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.0.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.0.5/.env | 3 + .../fisheye-crucible/2/2.0.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.5/Makefile | 5 + .../2/2.0.5/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.0.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.0.6/.env | 3 + .../fisheye-crucible/2/2.0.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.0.6/Makefile | 5 + .../2/2.0.6/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.0.6/entrypoint.sh | 33 +++++ .../fisheye-crucible/2/2.1.0.M2cc/.env | 3 + .../fisheye-crucible/2/2.1.0.M2cc/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.1.0.M2cc/Makefile | 5 + .../2/2.1.0.M2cc/docker-compose.yml | 9 ++ .../2/2.1.0.M2cc/entrypoint.sh | 33 +++++ .../fisheye-crucible/2/2.1.0.RC1/.env | 3 + .../fisheye-crucible/2/2.1.0.RC1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.1.0.RC1/Makefile | 5 + .../2/2.1.0.RC1/docker-compose.yml | 9 ++ .../2/2.1.0.RC1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.1.0/.env | 3 + .../fisheye-crucible/2/2.1.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.1.0/Makefile | 5 + .../2/2.1.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.1.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.1.1/.env | 3 + .../fisheye-crucible/2/2.1.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.1.1/Makefile | 5 + .../2/2.1.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.1.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.1.2/.env | 3 + .../fisheye-crucible/2/2.1.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.1.2/Makefile | 5 + .../2/2.1.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.1.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.1.3/.env | 3 + .../fisheye-crucible/2/2.1.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.1.3/Makefile | 5 + .../2/2.1.3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.1.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.1.4/.env | 3 + .../fisheye-crucible/2/2.1.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.1.4/Makefile | 5 + .../2/2.1.4/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.1.4/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.10.0/.env | 3 + .../fisheye-crucible/2/2.10.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.10.0/Makefile | 5 + .../2/2.10.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.10.0/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.10.1/.env | 3 + .../fisheye-crucible/2/2.10.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.10.1/Makefile | 5 + .../2/2.10.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.10.1/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.10.2/.env | 3 + .../fisheye-crucible/2/2.10.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.10.2/Makefile | 5 + .../2/2.10.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.10.2/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.10.3/.env | 3 + .../fisheye-crucible/2/2.10.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.10.3/Makefile | 5 + .../2/2.10.3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.10.3/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.10.4/.env | 3 + .../fisheye-crucible/2/2.10.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.10.4/Makefile | 5 + .../2/2.10.4/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.10.4/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.10.5/.env | 3 + .../fisheye-crucible/2/2.10.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.10.5/Makefile | 5 + .../2/2.10.5/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.10.5/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.10.6/.env | 3 + .../fisheye-crucible/2/2.10.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.10.6/Makefile | 5 + .../2/2.10.6/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.10.6/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.10.7/.env | 3 + .../fisheye-crucible/2/2.10.7/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.10.7/Makefile | 5 + .../2/2.10.7/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.10.7/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.10.8/.env | 3 + .../fisheye-crucible/2/2.10.8/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.10.8/Makefile | 5 + .../2/2.10.8/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.10.8/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.2.0/.env | 3 + .../fisheye-crucible/2/2.2.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.2.0/Makefile | 5 + .../2/2.2.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.2.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.2.1/.env | 3 + .../fisheye-crucible/2/2.2.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.2.1/Makefile | 5 + .../2/2.2.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.2.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.2.3/.env | 3 + .../fisheye-crucible/2/2.2.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.2.3/Makefile | 5 + .../2/2.2.3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.2.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.3.0/.env | 3 + .../fisheye-crucible/2/2.3.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.3.0/Makefile | 5 + .../2/2.3.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.3.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.3.1/.env | 3 + .../fisheye-crucible/2/2.3.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.3.1/Makefile | 5 + .../2/2.3.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.3.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.3.2/.env | 3 + .../fisheye-crucible/2/2.3.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.3.2/Makefile | 5 + .../2/2.3.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.3.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.3.3/.env | 3 + .../fisheye-crucible/2/2.3.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.3.3/Makefile | 5 + .../2/2.3.3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.3.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.3.4/.env | 3 + .../fisheye-crucible/2/2.3.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.3.4/Makefile | 5 + .../2/2.3.4/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.3.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.3.5/.env | 3 + .../fisheye-crucible/2/2.3.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.3.5/Makefile | 5 + .../2/2.3.5/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.3.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.3.6/.env | 3 + .../fisheye-crucible/2/2.3.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.3.6/Makefile | 5 + .../2/2.3.6/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.3.6/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.3.7/.env | 3 + .../fisheye-crucible/2/2.3.7/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.3.7/Makefile | 5 + .../2/2.3.7/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.3.7/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.3.8/.env | 3 + .../fisheye-crucible/2/2.3.8/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.3.8/Makefile | 5 + .../2/2.3.8/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.3.8/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.4.0/.env | 3 + .../fisheye-crucible/2/2.4.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.4.0/Makefile | 5 + .../2/2.4.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.4.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.4.1/.env | 3 + .../fisheye-crucible/2/2.4.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.4.1/Makefile | 5 + .../2/2.4.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.4.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.4.2/.env | 3 + .../fisheye-crucible/2/2.4.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.4.2/Makefile | 5 + .../2/2.4.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.4.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.4.3/.env | 3 + .../fisheye-crucible/2/2.4.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.4.3/Makefile | 5 + .../2/2.4.3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.4.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.4.4/.env | 3 + .../fisheye-crucible/2/2.4.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.4.4/Makefile | 5 + .../2/2.4.4/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.4.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.4.5/.env | 3 + .../fisheye-crucible/2/2.4.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.4.5/Makefile | 5 + .../2/2.4.5/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.4.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.4.6/.env | 3 + .../fisheye-crucible/2/2.4.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.4.6/Makefile | 5 + .../2/2.4.6/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.4.6/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.0/.env | 3 + .../fisheye-crucible/2/2.5.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.0/Makefile | 5 + .../2/2.5.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.1/.env | 3 + .../fisheye-crucible/2/2.5.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.1/Makefile | 5 + .../2/2.5.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.2/.env | 3 + .../fisheye-crucible/2/2.5.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.2/Makefile | 5 + .../2/2.5.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.3/.env | 3 + .../fisheye-crucible/2/2.5.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.3/Makefile | 5 + .../2/2.5.3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.4/.env | 3 + .../fisheye-crucible/2/2.5.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.4/Makefile | 5 + .../2/2.5.4/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.5/.env | 3 + .../fisheye-crucible/2/2.5.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.5/Makefile | 5 + .../2/2.5.5/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.6/.env | 3 + .../fisheye-crucible/2/2.5.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.6/Makefile | 5 + .../2/2.5.6/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.6/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.7/.env | 3 + .../fisheye-crucible/2/2.5.7/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.7/Makefile | 5 + .../2/2.5.7/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.7/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.8/.env | 3 + .../fisheye-crucible/2/2.5.8/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.8/Makefile | 5 + .../2/2.5.8/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.8/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.5.9/.env | 3 + .../fisheye-crucible/2/2.5.9/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.5.9/Makefile | 5 + .../2/2.5.9/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.5.9/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.0/.env | 3 + .../fisheye-crucible/2/2.6.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.0/Makefile | 5 + .../2/2.6.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.1/.env | 3 + .../fisheye-crucible/2/2.6.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.1/Makefile | 5 + .../2/2.6.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.2/.env | 3 + .../fisheye-crucible/2/2.6.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.2/Makefile | 5 + .../2/2.6.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.3/.env | 3 + .../fisheye-crucible/2/2.6.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.3/Makefile | 5 + .../2/2.6.3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.4/.env | 3 + .../fisheye-crucible/2/2.6.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.4/Makefile | 5 + .../2/2.6.4/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.5/.env | 3 + .../fisheye-crucible/2/2.6.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.5/Makefile | 5 + .../2/2.6.5/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.6/.env | 3 + .../fisheye-crucible/2/2.6.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.6/Makefile | 5 + .../2/2.6.6/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.6/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.7/.env | 3 + .../fisheye-crucible/2/2.6.7/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.7/Makefile | 5 + .../2/2.6.7/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.7/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.8/.env | 3 + .../fisheye-crucible/2/2.6.8/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.8/Makefile | 5 + .../2/2.6.8/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.8/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.6.9/.env | 3 + .../fisheye-crucible/2/2.6.9/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.6.9/Makefile | 5 + .../2/2.6.9/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.6.9/entrypoint.sh | 33 +++++ .../fisheye-crucible/2/2.7.0-EAP-1/.env | 3 + .../fisheye-crucible/2/2.7.0-EAP-1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.0-EAP-1/Makefile | 5 + .../2/2.7.0-EAP-1/docker-compose.yml | 9 ++ .../2/2.7.0-EAP-1/entrypoint.sh | 33 +++++ .../fisheye-crucible/2/2.7.0-EAP-2/.env | 3 + .../fisheye-crucible/2/2.7.0-EAP-2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.0-EAP-2/Makefile | 5 + .../2/2.7.0-EAP-2/docker-compose.yml | 9 ++ .../2/2.7.0-EAP-2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.0/.env | 3 + .../fisheye-crucible/2/2.7.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.0/Makefile | 5 + .../2/2.7.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.1/.env | 3 + .../fisheye-crucible/2/2.7.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.1/Makefile | 5 + .../2/2.7.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.1/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.7.10/.env | 3 + .../fisheye-crucible/2/2.7.10/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.10/Makefile | 5 + .../2/2.7.10/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.10/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.7.11/.env | 3 + .../fisheye-crucible/2/2.7.11/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.11/Makefile | 5 + .../2/2.7.11/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.11/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.7.12/.env | 3 + .../fisheye-crucible/2/2.7.12/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.12/Makefile | 5 + .../2/2.7.12/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.12/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.7.13/.env | 3 + .../fisheye-crucible/2/2.7.13/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.13/Makefile | 5 + .../2/2.7.13/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.13/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.7.14/.env | 3 + .../fisheye-crucible/2/2.7.14/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.14/Makefile | 5 + .../2/2.7.14/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.14/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/2/2.7.15/.env | 3 + .../fisheye-crucible/2/2.7.15/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.15/Makefile | 5 + .../2/2.7.15/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.15/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.2/.env | 3 + .../fisheye-crucible/2/2.7.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.2/Makefile | 5 + .../2/2.7.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.3/.env | 3 + .../fisheye-crucible/2/2.7.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.3/Makefile | 5 + .../2/2.7.3/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.4/.env | 3 + .../fisheye-crucible/2/2.7.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.4/Makefile | 5 + .../2/2.7.4/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.5/.env | 3 + .../fisheye-crucible/2/2.7.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.5/Makefile | 5 + .../2/2.7.5/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.6/.env | 3 + .../fisheye-crucible/2/2.7.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.6/Makefile | 5 + .../2/2.7.6/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.6/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.7/.env | 3 + .../fisheye-crucible/2/2.7.7/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.7/Makefile | 5 + .../2/2.7.7/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.7/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.8/.env | 3 + .../fisheye-crucible/2/2.7.8/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.8/Makefile | 5 + .../2/2.7.8/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.8/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.7.9/.env | 3 + .../fisheye-crucible/2/2.7.9/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.7.9/Makefile | 5 + .../2/2.7.9/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.7.9/entrypoint.sh | 33 +++++ .../fisheye-crucible/2/2.8.0-m1/.env | 3 + .../fisheye-crucible/2/2.8.0-m1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.8.0-m1/Makefile | 5 + .../2/2.8.0-m1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.8.0-m1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.8.0/.env | 3 + .../fisheye-crucible/2/2.8.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.8.0/Makefile | 5 + .../2/2.8.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.8.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.8.1/.env | 3 + .../fisheye-crucible/2/2.8.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.8.1/Makefile | 5 + .../2/2.8.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.8.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.8.2/.env | 3 + .../fisheye-crucible/2/2.8.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.8.2/Makefile | 5 + .../2/2.8.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.8.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.9.0/.env | 3 + .../fisheye-crucible/2/2.9.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.9.0/Makefile | 5 + .../2/2.9.0/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.9.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.9.1/.env | 3 + .../fisheye-crucible/2/2.9.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.9.1/Makefile | 5 + .../2/2.9.1/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.9.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/2/2.9.2/.env | 3 + .../fisheye-crucible/2/2.9.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/2/2.9.2/Makefile | 5 + .../2/2.9.2/docker-compose.yml | 9 ++ .../fisheye-crucible/2/2.9.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.0.0/.env | 3 + .../fisheye-crucible/3/3.0.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.0.0/Makefile | 5 + .../3/3.0.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.0.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.0.1/.env | 3 + .../fisheye-crucible/3/3.0.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.0.1/Makefile | 5 + .../3/3.0.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.0.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.0.2/.env | 3 + .../fisheye-crucible/3/3.0.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.0.2/Makefile | 5 + .../3/3.0.2/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.0.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.0.3/.env | 3 + .../fisheye-crucible/3/3.0.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.0.3/Makefile | 5 + .../3/3.0.3/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.0.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.0.4/.env | 3 + .../fisheye-crucible/3/3.0.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.0.4/Makefile | 5 + .../3/3.0.4/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.0.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.1.0/.env | 3 + .../fisheye-crucible/3/3.1.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.1.0/Makefile | 5 + .../3/3.1.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.1.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.1.1/.env | 3 + .../fisheye-crucible/3/3.1.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.1.1/Makefile | 5 + .../3/3.1.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.1.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.1.2/.env | 3 + .../fisheye-crucible/3/3.1.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.1.2/Makefile | 5 + .../3/3.1.2/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.1.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.1.3/.env | 3 + .../fisheye-crucible/3/3.1.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.1.3/Makefile | 5 + .../3/3.1.3/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.1.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.1.4/.env | 3 + .../fisheye-crucible/3/3.1.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.1.4/Makefile | 5 + .../3/3.1.4/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.1.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.1.5/.env | 3 + .../fisheye-crucible/3/3.1.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.1.5/Makefile | 5 + .../3/3.1.5/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.1.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.1.6/.env | 3 + .../fisheye-crucible/3/3.1.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.1.6/Makefile | 5 + .../3/3.1.6/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.1.6/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.1.7/.env | 3 + .../fisheye-crucible/3/3.1.7/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.1.7/Makefile | 5 + .../3/3.1.7/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.1.7/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/3/3.10.1/.env | 3 + .../fisheye-crucible/3/3.10.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.10.1/Makefile | 5 + .../3/3.10.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.10.1/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/3/3.10.2/.env | 3 + .../fisheye-crucible/3/3.10.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.10.2/Makefile | 5 + .../3/3.10.2/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.10.2/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/3/3.10.3/.env | 3 + .../fisheye-crucible/3/3.10.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.10.3/Makefile | 5 + .../3/3.10.3/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.10.3/entrypoint.sh | 33 +++++ .../atlassian/fisheye-crucible/3/3.10.4/.env | 3 + .../fisheye-crucible/3/3.10.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.10.4/Makefile | 5 + .../3/3.10.4/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.10.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.2.0/.env | 3 + .../fisheye-crucible/3/3.2.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.2.0/Makefile | 5 + .../3/3.2.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.2.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.2.1/.env | 3 + .../fisheye-crucible/3/3.2.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.2.1/Makefile | 5 + .../3/3.2.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.2.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.2.2/.env | 3 + .../fisheye-crucible/3/3.2.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.2.2/Makefile | 5 + .../3/3.2.2/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.2.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.2.3/.env | 3 + .../fisheye-crucible/3/3.2.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.2.3/Makefile | 5 + .../3/3.2.3/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.2.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.2.4/.env | 3 + .../fisheye-crucible/3/3.2.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.2.4/Makefile | 5 + .../3/3.2.4/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.2.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.2.5/.env | 3 + .../fisheye-crucible/3/3.2.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.2.5/Makefile | 5 + .../3/3.2.5/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.2.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.3.0/.env | 3 + .../fisheye-crucible/3/3.3.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.3.0/Makefile | 5 + .../3/3.3.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.3.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.3.1/.env | 3 + .../fisheye-crucible/3/3.3.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.3.1/Makefile | 5 + .../3/3.3.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.3.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.3.2/.env | 3 + .../fisheye-crucible/3/3.3.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.3.2/Makefile | 5 + .../3/3.3.2/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.3.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.3.3/.env | 3 + .../fisheye-crucible/3/3.3.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.3.3/Makefile | 5 + .../3/3.3.3/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.3.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.3.4/.env | 3 + .../fisheye-crucible/3/3.3.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.3.4/Makefile | 5 + .../3/3.3.4/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.3.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.4.0/.env | 3 + .../fisheye-crucible/3/3.4.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.4.0/Makefile | 5 + .../3/3.4.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.4.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.4.3/.env | 3 + .../fisheye-crucible/3/3.4.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.4.3/Makefile | 5 + .../3/3.4.3/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.4.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.4.4/.env | 3 + .../fisheye-crucible/3/3.4.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.4.4/Makefile | 5 + .../3/3.4.4/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.4.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.4.5/.env | 3 + .../fisheye-crucible/3/3.4.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.4.5/Makefile | 5 + .../3/3.4.5/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.4.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.4.6/.env | 3 + .../fisheye-crucible/3/3.4.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.4.6/Makefile | 5 + .../3/3.4.6/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.4.6/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.4.7/.env | 3 + .../fisheye-crucible/3/3.4.7/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.4.7/Makefile | 5 + .../3/3.4.7/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.4.7/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.5.0/.env | 3 + .../fisheye-crucible/3/3.5.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.5.0/Makefile | 5 + .../3/3.5.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.5.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.5.1/.env | 3 + .../fisheye-crucible/3/3.5.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.5.1/Makefile | 5 + .../3/3.5.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.5.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.5.2/.env | 3 + .../fisheye-crucible/3/3.5.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.5.2/Makefile | 5 + .../3/3.5.2/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.5.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.5.3/.env | 3 + .../fisheye-crucible/3/3.5.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.5.3/Makefile | 5 + .../3/3.5.3/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.5.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.5.4/.env | 3 + .../fisheye-crucible/3/3.5.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.5.4/Makefile | 5 + .../3/3.5.4/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.5.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.5.5/.env | 3 + .../fisheye-crucible/3/3.5.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.5.5/Makefile | 5 + .../3/3.5.5/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.5.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.6.0/.env | 3 + .../fisheye-crucible/3/3.6.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.6.0/Makefile | 5 + .../3/3.6.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.6.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.6.1/.env | 3 + .../fisheye-crucible/3/3.6.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.6.1/Makefile | 5 + .../3/3.6.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.6.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.6.2/.env | 3 + .../fisheye-crucible/3/3.6.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.6.2/Makefile | 5 + .../3/3.6.2/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.6.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.6.3/.env | 3 + .../fisheye-crucible/3/3.6.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.6.3/Makefile | 5 + .../3/3.6.3/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.6.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.6.4/.env | 3 + .../fisheye-crucible/3/3.6.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.6.4/Makefile | 5 + .../3/3.6.4/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.6.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.7.0/.env | 3 + .../fisheye-crucible/3/3.7.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.7.0/Makefile | 5 + .../3/3.7.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.7.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.7.1/.env | 3 + .../fisheye-crucible/3/3.7.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.7.1/Makefile | 5 + .../3/3.7.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.7.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.8.0/.env | 3 + .../fisheye-crucible/3/3.8.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.8.0/Makefile | 5 + .../3/3.8.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.8.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.8.1/.env | 3 + .../fisheye-crucible/3/3.8.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.8.1/Makefile | 5 + .../3/3.8.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.8.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.9.0/.env | 3 + .../fisheye-crucible/3/3.9.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.9.0/Makefile | 5 + .../3/3.9.0/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.9.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.9.1/.env | 3 + .../fisheye-crucible/3/3.9.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.9.1/Makefile | 5 + .../3/3.9.1/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.9.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/3/3.9.2/.env | 3 + .../fisheye-crucible/3/3.9.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/3/3.9.2/Makefile | 5 + .../3/3.9.2/docker-compose.yml | 9 ++ .../fisheye-crucible/3/3.9.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.0.2/.env | 3 + .../fisheye-crucible/4/4.0.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.0.2/Makefile | 5 + .../4/4.0.2/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.0.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.0.3/.env | 3 + .../fisheye-crucible/4/4.0.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.0.3/Makefile | 5 + .../4/4.0.3/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.0.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.0.4/.env | 3 + .../fisheye-crucible/4/4.0.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.0.4/Makefile | 5 + .../4/4.0.4/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.0.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.1.0/.env | 3 + .../fisheye-crucible/4/4.1.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.1.0/Makefile | 5 + .../4/4.1.0/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.1.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.1.1/.env | 3 + .../fisheye-crucible/4/4.1.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.1.1/Makefile | 5 + .../4/4.1.1/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.1.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.1.2/.env | 3 + .../fisheye-crucible/4/4.1.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.1.2/Makefile | 5 + .../4/4.1.2/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.1.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.1.3/.env | 3 + .../fisheye-crucible/4/4.1.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.1.3/Makefile | 5 + .../4/4.1.3/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.1.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.2.0/.env | 3 + .../fisheye-crucible/4/4.2.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.2.0/Makefile | 5 + .../4/4.2.0/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.2.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.2.1/.env | 3 + .../fisheye-crucible/4/4.2.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.2.1/Makefile | 5 + .../4/4.2.1/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.2.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.2.2/.env | 3 + .../fisheye-crucible/4/4.2.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.2.2/Makefile | 5 + .../4/4.2.2/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.2.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.2.3/.env | 3 + .../fisheye-crucible/4/4.2.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.2.3/Makefile | 5 + .../4/4.2.3/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.2.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.3.0/.env | 3 + .../fisheye-crucible/4/4.3.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.3.0/Makefile | 5 + .../4/4.3.0/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.3.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.3.1/.env | 3 + .../fisheye-crucible/4/4.3.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.3.1/Makefile | 5 + .../4/4.3.1/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.3.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.3.2/.env | 3 + .../fisheye-crucible/4/4.3.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.3.2/Makefile | 5 + .../4/4.3.2/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.3.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.3.3/.env | 3 + .../fisheye-crucible/4/4.3.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.3.3/Makefile | 5 + .../4/4.3.3/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.3.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.4.0/.env | 3 + .../fisheye-crucible/4/4.4.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.4.0/Makefile | 5 + .../4/4.4.0/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.4.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.4.1/.env | 3 + .../fisheye-crucible/4/4.4.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.4.1/Makefile | 5 + .../4/4.4.1/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.4.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.4.2/.env | 3 + .../fisheye-crucible/4/4.4.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.4.2/Makefile | 5 + .../4/4.4.2/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.4.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.4.3/.env | 3 + .../fisheye-crucible/4/4.4.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.4.3/Makefile | 5 + .../4/4.4.3/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.4.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.4.5/.env | 3 + .../fisheye-crucible/4/4.4.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.4.5/Makefile | 5 + .../4/4.4.5/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.4.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.4.6/.env | 3 + .../fisheye-crucible/4/4.4.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.4.6/Makefile | 5 + .../4/4.4.6/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.4.6/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.4.7/.env | 3 + .../fisheye-crucible/4/4.4.7/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.4.7/Makefile | 5 + .../4/4.4.7/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.4.7/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.5.0/.env | 3 + .../fisheye-crucible/4/4.5.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.5.0/Makefile | 5 + .../4/4.5.0/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.5.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.5.1/.env | 3 + .../fisheye-crucible/4/4.5.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.5.1/Makefile | 5 + .../4/4.5.1/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.5.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.5.2/.env | 3 + .../fisheye-crucible/4/4.5.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.5.2/Makefile | 5 + .../4/4.5.2/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.5.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.5.3/.env | 3 + .../fisheye-crucible/4/4.5.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.5.3/Makefile | 5 + .../4/4.5.3/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.5.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.5.4/.env | 3 + .../fisheye-crucible/4/4.5.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.5.4/Makefile | 5 + .../4/4.5.4/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.5.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.6.0/.env | 3 + .../fisheye-crucible/4/4.6.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.6.0/Makefile | 5 + .../4/4.6.0/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.6.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.6.1/.env | 3 + .../fisheye-crucible/4/4.6.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.6.1/Makefile | 5 + .../4/4.6.1/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.6.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.7.0/.env | 3 + .../fisheye-crucible/4/4.7.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.7.0/Makefile | 5 + .../4/4.7.0/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.7.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.7.1/.env | 3 + .../fisheye-crucible/4/4.7.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.7.1/Makefile | 5 + .../4/4.7.1/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.7.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.7.2/.env | 3 + .../fisheye-crucible/4/4.7.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.7.2/Makefile | 5 + .../4/4.7.2/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.7.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.7.3/.env | 3 + .../fisheye-crucible/4/4.7.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.7.3/Makefile | 5 + .../4/4.7.3/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.7.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.8.0/.env | 3 + .../fisheye-crucible/4/4.8.0/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.8.0/Makefile | 5 + .../4/4.8.0/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.8.0/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.8.1/.env | 3 + .../fisheye-crucible/4/4.8.1/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.8.1/Makefile | 5 + .../4/4.8.1/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.8.1/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.8.2/.env | 3 + .../fisheye-crucible/4/4.8.2/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.8.2/Makefile | 5 + .../4/4.8.2/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.8.2/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.8.3/.env | 3 + .../fisheye-crucible/4/4.8.3/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.8.3/Makefile | 5 + .../4/4.8.3/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.8.3/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.8.4/.env | 3 + .../fisheye-crucible/4/4.8.4/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.8.4/Makefile | 5 + .../4/4.8.4/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.8.4/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.8.5/.env | 3 + .../fisheye-crucible/4/4.8.5/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.8.5/Makefile | 5 + .../4/4.8.5/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.8.5/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/4/4.8.6/.env | 3 + .../fisheye-crucible/4/4.8.6/Dockerfile | 49 ++++++++ .../fisheye-crucible/4/4.8.6/Makefile | 5 + .../4/4.8.6/docker-compose.yml | 9 ++ .../fisheye-crucible/4/4.8.6/entrypoint.sh | 33 +++++ linux/atlassian/fisheye-crucible/README.md | 115 +++++++++++++++++- linux/atlassian/fisheye-crucible/latest/.env | 3 + .../fisheye-crucible/latest/Dockerfile | 15 +-- .../fisheye-crucible/latest/Makefile | 8 +- .../fisheye-crucible/latest/README.md | 110 ----------------- .../latest/docker-compose.yml | 9 ++ 934 files changed, 18544 insertions(+), 122 deletions(-) create mode 100644 bin/dotnet/data/fisheye-crucible/templates/2/Dockerfile create mode 100644 bin/dotnet/data/fisheye-crucible/templates/2/Makefile create mode 100644 bin/dotnet/data/fisheye-crucible/templates/2/docker-compose.yml create mode 100644 bin/dotnet/data/fisheye-crucible/templates/2/entrypoint.sh create mode 100644 bin/dotnet/data/fisheye-crucible/templates/3/Dockerfile create mode 100644 bin/dotnet/data/fisheye-crucible/templates/3/Makefile create mode 100644 bin/dotnet/data/fisheye-crucible/templates/3/docker-compose.yml create mode 100644 bin/dotnet/data/fisheye-crucible/templates/3/entrypoint.sh create mode 100644 bin/dotnet/data/fisheye-crucible/templates/4/Dockerfile create mode 100644 bin/dotnet/data/fisheye-crucible/templates/4/Makefile create mode 100644 bin/dotnet/data/fisheye-crucible/templates/4/docker-compose.yml create mode 100644 bin/dotnet/data/fisheye-crucible/templates/4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.B3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.B3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.4/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.5/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.6/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.RC1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.RC1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.4/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.4/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.5/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.6/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.7/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.7/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.7/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.8/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.8/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.8/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.4/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.5/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.6/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.7/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.7/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.7/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.8/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.8/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.8/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.4/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.5/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.6/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.4/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.5/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.6/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.7/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.7/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.7/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.8/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.8/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.8/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.9/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.9/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.9/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.4/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.5/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.6/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.7/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.7/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.7/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.8/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.8/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.8/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.9/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.9/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.9/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.10/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.10/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.10/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.11/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.11/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.11/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.12/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.12/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.12/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.13/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.13/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.13/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.14/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.14/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.14/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.15/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.15/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.15/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.3/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.4/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.5/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.6/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.7/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.7/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.7/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.8/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.8/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.8/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.9/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.9/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.9/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0-m1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0-m1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.0/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.1/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.2/.env create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.2/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.3/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.4/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.2/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.3/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.4/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.5/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.6/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.7/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.7/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.7/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.2/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.3/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.4/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.2/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.3/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.4/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.5/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.2/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.3/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.4/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.3/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.4/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.5/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.6/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.7/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.7/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.7/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.2/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.3/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.4/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.5/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.2/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.3/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.4/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.0/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.1/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.2/.env create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.2/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.3/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.4/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.0/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.1/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.2/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.3/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.0/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.1/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.2/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.3/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.0/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.1/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.2/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.3/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.0/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.1/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.2/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.3/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.5/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.6/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.7/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.7/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.7/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.0/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.1/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.2/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.3/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.4/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.0/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.1/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.0/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.1/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.2/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.3/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.0/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.1/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.2/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.3/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.4/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.5/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.6/.env create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/latest/.env delete mode 100644 linux/atlassian/fisheye-crucible/latest/README.md create mode 100644 linux/atlassian/fisheye-crucible/latest/docker-compose.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index e9f8328fe..96b353d51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ * `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` diff --git a/bin/dotnet/data/fisheye-crucible/templates/2/Dockerfile b/bin/dotnet/data/fisheye-crucible/templates/2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/fisheye-crucible/templates/2/Makefile b/bin/dotnet/data/fisheye-crucible/templates/2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/fisheye-crucible/templates/2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/fisheye-crucible/templates/2/docker-compose.yml b/bin/dotnet/data/fisheye-crucible/templates/2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/fisheye-crucible/templates/2/entrypoint.sh b/bin/dotnet/data/fisheye-crucible/templates/2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/fisheye-crucible/templates/3/Dockerfile b/bin/dotnet/data/fisheye-crucible/templates/3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/fisheye-crucible/templates/3/Makefile b/bin/dotnet/data/fisheye-crucible/templates/3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/fisheye-crucible/templates/3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/fisheye-crucible/templates/3/docker-compose.yml b/bin/dotnet/data/fisheye-crucible/templates/3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/fisheye-crucible/templates/3/entrypoint.sh b/bin/dotnet/data/fisheye-crucible/templates/3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/fisheye-crucible/templates/4/Dockerfile b/bin/dotnet/data/fisheye-crucible/templates/4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/fisheye-crucible/templates/4/Makefile b/bin/dotnet/data/fisheye-crucible/templates/4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/fisheye-crucible/templates/4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/fisheye-crucible/templates/4/docker-compose.yml b/bin/dotnet/data/fisheye-crucible/templates/4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/fisheye-crucible/templates/4/entrypoint.sh b/bin/dotnet/data/fisheye-crucible/templates/4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/bin/dotnet/data/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/atlassian/fisheye-crucible/2/2.0.0.B3/.env b/linux/atlassian/fisheye-crucible/2/2.0.0.B3/.env new file mode 100644 index 000000000..b3e452724 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.B3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.0.B3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC1/.env b/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/.env new file mode 100644 index 000000000..f5b8f82d5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC2/.env b/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/.env new file mode 100644 index 000000000..127c3ce81 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC3/.env b/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/.env new file mode 100644 index 000000000..8f0acb4ef --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0/.env b/linux/atlassian/fisheye-crucible/2/2.0.0/.env new file mode 100644 index 000000000..52eca6c5d --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.1/.env b/linux/atlassian/fisheye-crucible/2/2.0.1/.env new file mode 100644 index 000000000..43d4f4c16 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.2/.env b/linux/atlassian/fisheye-crucible/2/2.0.2/.env new file mode 100644 index 000000000..76a232dbc --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.3/.env b/linux/atlassian/fisheye-crucible/2/2.0.3/.env new file mode 100644 index 000000000..4d965adc3 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.3/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.4/.env b/linux/atlassian/fisheye-crucible/2/2.0.4/.env new file mode 100644 index 000000000..94bf5ef15 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.4/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.4/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.5/.env b/linux/atlassian/fisheye-crucible/2/2.0.5/.env new file mode 100644 index 000000000..76f47386e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.5/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.5/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.6/.env b/linux/atlassian/fisheye-crucible/2/2.0.6/.env new file mode 100644 index 000000000..ad6500ab0 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.6/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.0.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.6/Makefile b/linux/atlassian/fisheye-crucible/2/2.0.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env b/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env new file mode 100644 index 000000000..8a53688ff --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile b/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.M2cc/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.RC1/.env b/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/.env new file mode 100644 index 000000000..84b9e6629 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile b/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.RC1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0/.env b/linux/atlassian/fisheye-crucible/2/2.1.0/.env new file mode 100644 index 000000000..da9f328ea --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.1.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.1/.env b/linux/atlassian/fisheye-crucible/2/2.1.1/.env new file mode 100644 index 000000000..b58495636 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.1.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.2/.env b/linux/atlassian/fisheye-crucible/2/2.1.2/.env new file mode 100644 index 000000000..a2240bd5c --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.1.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.3/.env b/linux/atlassian/fisheye-crucible/2/2.1.3/.env new file mode 100644 index 000000000..5d256fc5b --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.1.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.3/Makefile b/linux/atlassian/fisheye-crucible/2/2.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.4/.env b/linux/atlassian/fisheye-crucible/2/2.1.4/.env new file mode 100644 index 000000000..11e3f491c --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.4/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.1.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.4/Makefile b/linux/atlassian/fisheye-crucible/2/2.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.0/.env b/linux/atlassian/fisheye-crucible/2/2.10.0/.env new file mode 100644 index 000000000..390976cc5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.10.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.10.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.1/.env b/linux/atlassian/fisheye-crucible/2/2.10.1/.env new file mode 100644 index 000000000..57f64a28c --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.10.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.10.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.2/.env b/linux/atlassian/fisheye-crucible/2/2.10.2/.env new file mode 100644 index 000000000..532796441 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.10.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.10.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.3/.env b/linux/atlassian/fisheye-crucible/2/2.10.3/.env new file mode 100644 index 000000000..9c77750e7 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.10.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.3/Makefile b/linux/atlassian/fisheye-crucible/2/2.10.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.4/.env b/linux/atlassian/fisheye-crucible/2/2.10.4/.env new file mode 100644 index 000000000..1674063d6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.4/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.10.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.4/Makefile b/linux/atlassian/fisheye-crucible/2/2.10.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.5/.env b/linux/atlassian/fisheye-crucible/2/2.10.5/.env new file mode 100644 index 000000000..beda9717e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.5/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.10.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.5/Makefile b/linux/atlassian/fisheye-crucible/2/2.10.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.6/.env b/linux/atlassian/fisheye-crucible/2/2.10.6/.env new file mode 100644 index 000000000..2313fc602 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.6/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.10.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.6/Makefile b/linux/atlassian/fisheye-crucible/2/2.10.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.7/.env b/linux/atlassian/fisheye-crucible/2/2.10.7/.env new file mode 100644 index 000000000..ec759bcee --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.7/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.10.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.7/Makefile b/linux/atlassian/fisheye-crucible/2/2.10.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.8/.env b/linux/atlassian/fisheye-crucible/2/2.10.8/.env new file mode 100644 index 000000000..e15b6d392 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.8/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.10.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.8/Makefile b/linux/atlassian/fisheye-crucible/2/2.10.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.0/.env b/linux/atlassian/fisheye-crucible/2/2.2.0/.env new file mode 100644 index 000000000..55110048f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.2.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.2.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.1/.env b/linux/atlassian/fisheye-crucible/2/2.2.1/.env new file mode 100644 index 000000000..1cdb59923 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.2.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.3/.env b/linux/atlassian/fisheye-crucible/2/2.2.3/.env new file mode 100644 index 000000000..5706f96dc --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.2.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.3/Makefile b/linux/atlassian/fisheye-crucible/2/2.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.0/.env b/linux/atlassian/fisheye-crucible/2/2.3.0/.env new file mode 100644 index 000000000..83ade4f92 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.3.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.3.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.1/.env b/linux/atlassian/fisheye-crucible/2/2.3.1/.env new file mode 100644 index 000000000..39664602a --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.3.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.3.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.2/.env b/linux/atlassian/fisheye-crucible/2/2.3.2/.env new file mode 100644 index 000000000..e63628c7f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.3.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.3.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.3/.env b/linux/atlassian/fisheye-crucible/2/2.3.3/.env new file mode 100644 index 000000000..76199a669 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.3.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.3/Makefile b/linux/atlassian/fisheye-crucible/2/2.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.4/.env b/linux/atlassian/fisheye-crucible/2/2.3.4/.env new file mode 100644 index 000000000..014d19107 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.4/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.3.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.4/Makefile b/linux/atlassian/fisheye-crucible/2/2.3.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.5/.env b/linux/atlassian/fisheye-crucible/2/2.3.5/.env new file mode 100644 index 000000000..eb650ebd3 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.5/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.3.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.5/Makefile b/linux/atlassian/fisheye-crucible/2/2.3.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.6/.env b/linux/atlassian/fisheye-crucible/2/2.3.6/.env new file mode 100644 index 000000000..a983392bb --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.6/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.3.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.6/Makefile b/linux/atlassian/fisheye-crucible/2/2.3.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.7/.env b/linux/atlassian/fisheye-crucible/2/2.3.7/.env new file mode 100644 index 000000000..bf39d8cdf --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.7/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.3.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.7/Makefile b/linux/atlassian/fisheye-crucible/2/2.3.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.8/.env b/linux/atlassian/fisheye-crucible/2/2.3.8/.env new file mode 100644 index 000000000..3e14eab93 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.8/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.3.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.8/Makefile b/linux/atlassian/fisheye-crucible/2/2.3.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.0/.env b/linux/atlassian/fisheye-crucible/2/2.4.0/.env new file mode 100644 index 000000000..a4548f80a --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.4.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.4.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.1/.env b/linux/atlassian/fisheye-crucible/2/2.4.1/.env new file mode 100644 index 000000000..a0dc8192e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.4.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.2/.env b/linux/atlassian/fisheye-crucible/2/2.4.2/.env new file mode 100644 index 000000000..e49445818 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.4.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.4.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.3/.env b/linux/atlassian/fisheye-crucible/2/2.4.3/.env new file mode 100644 index 000000000..a5bd4ffe7 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.4.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.3/Makefile b/linux/atlassian/fisheye-crucible/2/2.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.4/.env b/linux/atlassian/fisheye-crucible/2/2.4.4/.env new file mode 100644 index 000000000..4298309ba --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.4/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.4.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.4/Makefile b/linux/atlassian/fisheye-crucible/2/2.4.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.5/.env b/linux/atlassian/fisheye-crucible/2/2.4.5/.env new file mode 100644 index 000000000..3557d0440 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.5/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.4.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.5/Makefile b/linux/atlassian/fisheye-crucible/2/2.4.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.6/.env b/linux/atlassian/fisheye-crucible/2/2.4.6/.env new file mode 100644 index 000000000..a72fcb1d1 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.6/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.4.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.6/Makefile b/linux/atlassian/fisheye-crucible/2/2.4.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.0/.env b/linux/atlassian/fisheye-crucible/2/2.5.0/.env new file mode 100644 index 000000000..1ee4a3b79 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.1/.env b/linux/atlassian/fisheye-crucible/2/2.5.1/.env new file mode 100644 index 000000000..075bce268 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.2/.env b/linux/atlassian/fisheye-crucible/2/2.5.2/.env new file mode 100644 index 000000000..2c36fc568 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.3/.env b/linux/atlassian/fisheye-crucible/2/2.5.3/.env new file mode 100644 index 000000000..58730891c --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.3/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.4/.env b/linux/atlassian/fisheye-crucible/2/2.5.4/.env new file mode 100644 index 000000000..53c77473d --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.4/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.4/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.5/.env b/linux/atlassian/fisheye-crucible/2/2.5.5/.env new file mode 100644 index 000000000..c727ad8ea --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.5/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.5/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.6/.env b/linux/atlassian/fisheye-crucible/2/2.5.6/.env new file mode 100644 index 000000000..15ade1f14 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.6/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.6/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.7/.env b/linux/atlassian/fisheye-crucible/2/2.5.7/.env new file mode 100644 index 000000000..e894f3fe2 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.7/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.7/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.8/.env b/linux/atlassian/fisheye-crucible/2/2.5.8/.env new file mode 100644 index 000000000..d088cc0b7 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.8/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.8/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.9/.env b/linux/atlassian/fisheye-crucible/2/2.5.9/.env new file mode 100644 index 000000000..1175a188b --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.9/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.5.9/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.9/Makefile b/linux/atlassian/fisheye-crucible/2/2.5.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.0/.env b/linux/atlassian/fisheye-crucible/2/2.6.0/.env new file mode 100644 index 000000000..3864b6548 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.1/.env b/linux/atlassian/fisheye-crucible/2/2.6.1/.env new file mode 100644 index 000000000..86671ae1b --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.2/.env b/linux/atlassian/fisheye-crucible/2/2.6.2/.env new file mode 100644 index 000000000..91d622b11 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.3/.env b/linux/atlassian/fisheye-crucible/2/2.6.3/.env new file mode 100644 index 000000000..2352b88cb --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.3/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.4/.env b/linux/atlassian/fisheye-crucible/2/2.6.4/.env new file mode 100644 index 000000000..fe333de81 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.4/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.4/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.5/.env b/linux/atlassian/fisheye-crucible/2/2.6.5/.env new file mode 100644 index 000000000..4ea40b688 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.5/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.5/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.6/.env b/linux/atlassian/fisheye-crucible/2/2.6.6/.env new file mode 100644 index 000000000..92afb3313 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.6/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.6/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.7/.env b/linux/atlassian/fisheye-crucible/2/2.6.7/.env new file mode 100644 index 000000000..0fbd56caa --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.7/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.7/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.8/.env b/linux/atlassian/fisheye-crucible/2/2.6.8/.env new file mode 100644 index 000000000..3a6d2e4ef --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.8/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.8/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.9/.env b/linux/atlassian/fisheye-crucible/2/2.6.9/.env new file mode 100644 index 000000000..70ffb90b0 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.9/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.6.9/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.9/Makefile b/linux/atlassian/fisheye-crucible/2/2.6.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env new file mode 100644 index 000000000..cd9e13cbd --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env new file mode 100644 index 000000000..a41cfffba --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0/.env b/linux/atlassian/fisheye-crucible/2/2.7.0/.env new file mode 100644 index 000000000..d471d3a50 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.1/.env b/linux/atlassian/fisheye-crucible/2/2.7.1/.env new file mode 100644 index 000000000..e3c1a0e15 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.10/.env b/linux/atlassian/fisheye-crucible/2/2.7.10/.env new file mode 100644 index 000000000..3af564275 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.10/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.10/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.10/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.10/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.11/.env b/linux/atlassian/fisheye-crucible/2/2.7.11/.env new file mode 100644 index 000000000..9299bc0cf --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.11/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.11/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.11/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.11/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.12/.env b/linux/atlassian/fisheye-crucible/2/2.7.12/.env new file mode 100644 index 000000000..d0dc63400 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.12/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.12/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.12/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.13/.env b/linux/atlassian/fisheye-crucible/2/2.7.13/.env new file mode 100644 index 000000000..e39e5e5e4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.13/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.13/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.13/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.14/.env b/linux/atlassian/fisheye-crucible/2/2.7.14/.env new file mode 100644 index 000000000..7e5b79810 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.14/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.14/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.14/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.15/.env b/linux/atlassian/fisheye-crucible/2/2.7.15/.env new file mode 100644 index 000000000..c97544c9e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.15/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.15/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.15/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.15/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.2/.env b/linux/atlassian/fisheye-crucible/2/2.7.2/.env new file mode 100644 index 000000000..6b210a2c8 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.3/.env b/linux/atlassian/fisheye-crucible/2/2.7.3/.env new file mode 100644 index 000000000..068228e13 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.3/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.3/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.4/.env b/linux/atlassian/fisheye-crucible/2/2.7.4/.env new file mode 100644 index 000000000..20db3d5f7 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.4/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.4/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.5/.env b/linux/atlassian/fisheye-crucible/2/2.7.5/.env new file mode 100644 index 000000000..d8690f40f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.5/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.5/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.6/.env b/linux/atlassian/fisheye-crucible/2/2.7.6/.env new file mode 100644 index 000000000..6f8f85b36 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.6/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.6/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.7/.env b/linux/atlassian/fisheye-crucible/2/2.7.7/.env new file mode 100644 index 000000000..6c0b304a3 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.7/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.7/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.7/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.8/.env b/linux/atlassian/fisheye-crucible/2/2.7.8/.env new file mode 100644 index 000000000..8fdb84817 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.8/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.8/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.8/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.9/.env b/linux/atlassian/fisheye-crucible/2/2.7.9/.env new file mode 100644 index 000000000..7888cf497 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.9/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.7.9/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.9/Makefile b/linux/atlassian/fisheye-crucible/2/2.7.9/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0-m1/.env b/linux/atlassian/fisheye-crucible/2/2.8.0-m1/.env new file mode 100644 index 000000000..c40c75472 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile b/linux/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0-m1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.8.0-m1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0/.env b/linux/atlassian/fisheye-crucible/2/2.8.0/.env new file mode 100644 index 000000000..2932de805 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.8.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.8.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.1/.env b/linux/atlassian/fisheye-crucible/2/2.8.1/.env new file mode 100644 index 000000000..7a4ffa6b8 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.8.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.8.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.2/.env b/linux/atlassian/fisheye-crucible/2/2.8.2/.env new file mode 100644 index 000000000..a15a063c4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.8.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.8.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.0/.env b/linux/atlassian/fisheye-crucible/2/2.9.0/.env new file mode 100644 index 000000000..b1a55c31a --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.0/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.9.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.0/Makefile b/linux/atlassian/fisheye-crucible/2/2.9.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.1/.env b/linux/atlassian/fisheye-crucible/2/2.9.1/.env new file mode 100644 index 000000000..af27c534a --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.1/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.9.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.1/Makefile b/linux/atlassian/fisheye-crucible/2/2.9.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.2/.env b/linux/atlassian/fisheye-crucible/2/2.9.2/.env new file mode 100644 index 000000000..f2b745c9d --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.2/Dockerfile b/linux/atlassian/fisheye-crucible/2/2.9.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.2/Makefile b/linux/atlassian/fisheye-crucible/2/2.9.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.0/.env b/linux/atlassian/fisheye-crucible/3/3.0.0/.env new file mode 100644 index 000000000..0e54202ca --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.0.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.0.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.1/.env b/linux/atlassian/fisheye-crucible/3/3.0.1/.env new file mode 100644 index 000000000..7ea35acda --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.0.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.0.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.2/.env b/linux/atlassian/fisheye-crucible/3/3.0.2/.env new file mode 100644 index 000000000..5a9435537 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.2/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.0.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.2/Makefile b/linux/atlassian/fisheye-crucible/3/3.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.3/.env b/linux/atlassian/fisheye-crucible/3/3.0.3/.env new file mode 100644 index 000000000..ffb8637b7 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.3/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.0.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.3/Makefile b/linux/atlassian/fisheye-crucible/3/3.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.4/.env b/linux/atlassian/fisheye-crucible/3/3.0.4/.env new file mode 100644 index 000000000..7148f15f3 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.4/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.0.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.4/Makefile b/linux/atlassian/fisheye-crucible/3/3.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.0/.env b/linux/atlassian/fisheye-crucible/3/3.1.0/.env new file mode 100644 index 000000000..7464d5e69 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.1.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.1/.env b/linux/atlassian/fisheye-crucible/3/3.1.1/.env new file mode 100644 index 000000000..111df2c12 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.1.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.2/.env b/linux/atlassian/fisheye-crucible/3/3.1.2/.env new file mode 100644 index 000000000..bfaf35ed8 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.2/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.1.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.2/Makefile b/linux/atlassian/fisheye-crucible/3/3.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.3/.env b/linux/atlassian/fisheye-crucible/3/3.1.3/.env new file mode 100644 index 000000000..af211e4ac --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.3/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.1.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.3/Makefile b/linux/atlassian/fisheye-crucible/3/3.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.4/.env b/linux/atlassian/fisheye-crucible/3/3.1.4/.env new file mode 100644 index 000000000..1a7df2bb3 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.4/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.1.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.4/Makefile b/linux/atlassian/fisheye-crucible/3/3.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.5/.env b/linux/atlassian/fisheye-crucible/3/3.1.5/.env new file mode 100644 index 000000000..bc45e4d9a --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.5/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.1.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.5/Makefile b/linux/atlassian/fisheye-crucible/3/3.1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.6/.env b/linux/atlassian/fisheye-crucible/3/3.1.6/.env new file mode 100644 index 000000000..37dd08966 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.6/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.1.6/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.6/Makefile b/linux/atlassian/fisheye-crucible/3/3.1.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.7/.env b/linux/atlassian/fisheye-crucible/3/3.1.7/.env new file mode 100644 index 000000000..72b5062fe --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.7/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.1.7/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.7/Makefile b/linux/atlassian/fisheye-crucible/3/3.1.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.1/.env b/linux/atlassian/fisheye-crucible/3/3.10.1/.env new file mode 100644 index 000000000..f0804c230 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.10.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.10.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.2/.env b/linux/atlassian/fisheye-crucible/3/3.10.2/.env new file mode 100644 index 000000000..ab8e2638b --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.2/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.10.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.2/Makefile b/linux/atlassian/fisheye-crucible/3/3.10.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.3/.env b/linux/atlassian/fisheye-crucible/3/3.10.3/.env new file mode 100644 index 000000000..ce1837b5b --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.3/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.10.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.3/Makefile b/linux/atlassian/fisheye-crucible/3/3.10.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.4/.env b/linux/atlassian/fisheye-crucible/3/3.10.4/.env new file mode 100644 index 000000000..4da70fe3b --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.4/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.10.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.4/Makefile b/linux/atlassian/fisheye-crucible/3/3.10.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.0/.env b/linux/atlassian/fisheye-crucible/3/3.2.0/.env new file mode 100644 index 000000000..9fc230804 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.2.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.2.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.1/.env b/linux/atlassian/fisheye-crucible/3/3.2.1/.env new file mode 100644 index 000000000..0907424e3 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.2.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.2/.env b/linux/atlassian/fisheye-crucible/3/3.2.2/.env new file mode 100644 index 000000000..fc31c5e1e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.2/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.2.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.2/Makefile b/linux/atlassian/fisheye-crucible/3/3.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.3/.env b/linux/atlassian/fisheye-crucible/3/3.2.3/.env new file mode 100644 index 000000000..8fbf74253 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.3/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.2.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.3/Makefile b/linux/atlassian/fisheye-crucible/3/3.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.4/.env b/linux/atlassian/fisheye-crucible/3/3.2.4/.env new file mode 100644 index 000000000..a39b1c14c --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.4/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.2.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.4/Makefile b/linux/atlassian/fisheye-crucible/3/3.2.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.5/.env b/linux/atlassian/fisheye-crucible/3/3.2.5/.env new file mode 100644 index 000000000..35ef1a788 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.5/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.2.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.5/Makefile b/linux/atlassian/fisheye-crucible/3/3.2.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.0/.env b/linux/atlassian/fisheye-crucible/3/3.3.0/.env new file mode 100644 index 000000000..351453d62 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.3.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.3.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.1/.env b/linux/atlassian/fisheye-crucible/3/3.3.1/.env new file mode 100644 index 000000000..deffdb2f8 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.3.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.3.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.2/.env b/linux/atlassian/fisheye-crucible/3/3.3.2/.env new file mode 100644 index 000000000..26fe5340f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.2/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.3.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.2/Makefile b/linux/atlassian/fisheye-crucible/3/3.3.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.3/.env b/linux/atlassian/fisheye-crucible/3/3.3.3/.env new file mode 100644 index 000000000..46009a92c --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.3/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.3.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.3/Makefile b/linux/atlassian/fisheye-crucible/3/3.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.4/.env b/linux/atlassian/fisheye-crucible/3/3.3.4/.env new file mode 100644 index 000000000..94a1c1d47 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.4/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.3.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.4/Makefile b/linux/atlassian/fisheye-crucible/3/3.3.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.0/.env b/linux/atlassian/fisheye-crucible/3/3.4.0/.env new file mode 100644 index 000000000..c60c561dd --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.4.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.4.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.3/.env b/linux/atlassian/fisheye-crucible/3/3.4.3/.env new file mode 100644 index 000000000..9565a266b --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.3/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.4.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.3/Makefile b/linux/atlassian/fisheye-crucible/3/3.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.4/.env b/linux/atlassian/fisheye-crucible/3/3.4.4/.env new file mode 100644 index 000000000..e44650c82 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.4/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.4.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.4/Makefile b/linux/atlassian/fisheye-crucible/3/3.4.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.5/.env b/linux/atlassian/fisheye-crucible/3/3.4.5/.env new file mode 100644 index 000000000..f48da9e6e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.5/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.4.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.5/Makefile b/linux/atlassian/fisheye-crucible/3/3.4.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.6/.env b/linux/atlassian/fisheye-crucible/3/3.4.6/.env new file mode 100644 index 000000000..d5a442720 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.6/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.4.6/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.6/Makefile b/linux/atlassian/fisheye-crucible/3/3.4.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.7/.env b/linux/atlassian/fisheye-crucible/3/3.4.7/.env new file mode 100644 index 000000000..f4b84beac --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.7/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.4.7/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.7/Makefile b/linux/atlassian/fisheye-crucible/3/3.4.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.0/.env b/linux/atlassian/fisheye-crucible/3/3.5.0/.env new file mode 100644 index 000000000..d0b4b7613 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.5.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.5.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.1/.env b/linux/atlassian/fisheye-crucible/3/3.5.1/.env new file mode 100644 index 000000000..f402ad46d --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.5.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.2/.env b/linux/atlassian/fisheye-crucible/3/3.5.2/.env new file mode 100644 index 000000000..f3fa76061 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.2/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.5.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.2/Makefile b/linux/atlassian/fisheye-crucible/3/3.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.3/.env b/linux/atlassian/fisheye-crucible/3/3.5.3/.env new file mode 100644 index 000000000..ab8be3503 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.3/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.5.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.3/Makefile b/linux/atlassian/fisheye-crucible/3/3.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.4/.env b/linux/atlassian/fisheye-crucible/3/3.5.4/.env new file mode 100644 index 000000000..f0659f2a8 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.4/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.5.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.4/Makefile b/linux/atlassian/fisheye-crucible/3/3.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.5/.env b/linux/atlassian/fisheye-crucible/3/3.5.5/.env new file mode 100644 index 000000000..6620d8890 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.5/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.5.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.5/Makefile b/linux/atlassian/fisheye-crucible/3/3.5.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.0/.env b/linux/atlassian/fisheye-crucible/3/3.6.0/.env new file mode 100644 index 000000000..c16ec55f9 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.6.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.1/.env b/linux/atlassian/fisheye-crucible/3/3.6.1/.env new file mode 100644 index 000000000..ce7a5816b --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.6.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.2/.env b/linux/atlassian/fisheye-crucible/3/3.6.2/.env new file mode 100644 index 000000000..1b87324db --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.2/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.6.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.2/Makefile b/linux/atlassian/fisheye-crucible/3/3.6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.3/.env b/linux/atlassian/fisheye-crucible/3/3.6.3/.env new file mode 100644 index 000000000..237b876ea --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.3/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.6.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.3/Makefile b/linux/atlassian/fisheye-crucible/3/3.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.4/.env b/linux/atlassian/fisheye-crucible/3/3.6.4/.env new file mode 100644 index 000000000..7d627b28f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.4/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.6.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.4/Makefile b/linux/atlassian/fisheye-crucible/3/3.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.0/.env b/linux/atlassian/fisheye-crucible/3/3.7.0/.env new file mode 100644 index 000000000..8b1834064 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.7.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.7.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.1/.env b/linux/atlassian/fisheye-crucible/3/3.7.1/.env new file mode 100644 index 000000000..7af1999e4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.7.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.7.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.0/.env b/linux/atlassian/fisheye-crucible/3/3.8.0/.env new file mode 100644 index 000000000..b9ff2a8f4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.8.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.8.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.1/.env b/linux/atlassian/fisheye-crucible/3/3.8.1/.env new file mode 100644 index 000000000..1317ea9f3 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.8.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.8.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.0/.env b/linux/atlassian/fisheye-crucible/3/3.9.0/.env new file mode 100644 index 000000000..b67b72ee4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.0/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.9.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.0/Makefile b/linux/atlassian/fisheye-crucible/3/3.9.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.1/.env b/linux/atlassian/fisheye-crucible/3/3.9.1/.env new file mode 100644 index 000000000..c97bfd2b5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.1/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.9.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.1/Makefile b/linux/atlassian/fisheye-crucible/3/3.9.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.2/.env b/linux/atlassian/fisheye-crucible/3/3.9.2/.env new file mode 100644 index 000000000..abb8b54b4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.2/Dockerfile b/linux/atlassian/fisheye-crucible/3/3.9.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.2/Makefile b/linux/atlassian/fisheye-crucible/3/3.9.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.2/.env b/linux/atlassian/fisheye-crucible/4/4.0.2/.env new file mode 100644 index 000000000..c8444aaed --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.2/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.0.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.2/Makefile b/linux/atlassian/fisheye-crucible/4/4.0.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.3/.env b/linux/atlassian/fisheye-crucible/4/4.0.3/.env new file mode 100644 index 000000000..8ff330983 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.3/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.0.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.3/Makefile b/linux/atlassian/fisheye-crucible/4/4.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.4/.env b/linux/atlassian/fisheye-crucible/4/4.0.4/.env new file mode 100644 index 000000000..8726434dc --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.4/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.0.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.4/Makefile b/linux/atlassian/fisheye-crucible/4/4.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.0/.env b/linux/atlassian/fisheye-crucible/4/4.1.0/.env new file mode 100644 index 000000000..d7ceda074 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.0/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.1.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.0/Makefile b/linux/atlassian/fisheye-crucible/4/4.1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.1/.env b/linux/atlassian/fisheye-crucible/4/4.1.1/.env new file mode 100644 index 000000000..dd9118d58 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.1/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.1.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.1/Makefile b/linux/atlassian/fisheye-crucible/4/4.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.2/.env b/linux/atlassian/fisheye-crucible/4/4.1.2/.env new file mode 100644 index 000000000..23d06111e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.2/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.1.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.2/Makefile b/linux/atlassian/fisheye-crucible/4/4.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.3/.env b/linux/atlassian/fisheye-crucible/4/4.1.3/.env new file mode 100644 index 000000000..382f74c0a --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.3/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.1.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.3/Makefile b/linux/atlassian/fisheye-crucible/4/4.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.0/.env b/linux/atlassian/fisheye-crucible/4/4.2.0/.env new file mode 100644 index 000000000..78116647a --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.0/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.2.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.0/Makefile b/linux/atlassian/fisheye-crucible/4/4.2.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.1/.env b/linux/atlassian/fisheye-crucible/4/4.2.1/.env new file mode 100644 index 000000000..769cc6f64 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.1/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.2.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.1/Makefile b/linux/atlassian/fisheye-crucible/4/4.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.2/.env b/linux/atlassian/fisheye-crucible/4/4.2.2/.env new file mode 100644 index 000000000..360c3089a --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.2/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.2.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.2/Makefile b/linux/atlassian/fisheye-crucible/4/4.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.3/.env b/linux/atlassian/fisheye-crucible/4/4.2.3/.env new file mode 100644 index 000000000..84db9d4c1 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.3/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.2.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.3/Makefile b/linux/atlassian/fisheye-crucible/4/4.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.0/.env b/linux/atlassian/fisheye-crucible/4/4.3.0/.env new file mode 100644 index 000000000..b2a6ec7a3 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.0/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.3.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.0/Makefile b/linux/atlassian/fisheye-crucible/4/4.3.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.1/.env b/linux/atlassian/fisheye-crucible/4/4.3.1/.env new file mode 100644 index 000000000..3f20ff446 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.1/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.3.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.1/Makefile b/linux/atlassian/fisheye-crucible/4/4.3.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.2/.env b/linux/atlassian/fisheye-crucible/4/4.3.2/.env new file mode 100644 index 000000000..18d001fae --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.2/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.3.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.2/Makefile b/linux/atlassian/fisheye-crucible/4/4.3.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.3/.env b/linux/atlassian/fisheye-crucible/4/4.3.3/.env new file mode 100644 index 000000000..9cb64d3e0 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.3/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.3.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.3/Makefile b/linux/atlassian/fisheye-crucible/4/4.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.0/.env b/linux/atlassian/fisheye-crucible/4/4.4.0/.env new file mode 100644 index 000000000..65585361e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.0/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.4.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.0/Makefile b/linux/atlassian/fisheye-crucible/4/4.4.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.1/.env b/linux/atlassian/fisheye-crucible/4/4.4.1/.env new file mode 100644 index 000000000..47a462c99 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.1/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.4.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.1/Makefile b/linux/atlassian/fisheye-crucible/4/4.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.2/.env b/linux/atlassian/fisheye-crucible/4/4.4.2/.env new file mode 100644 index 000000000..3697f5cd2 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.2/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.4.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.2/Makefile b/linux/atlassian/fisheye-crucible/4/4.4.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.3/.env b/linux/atlassian/fisheye-crucible/4/4.4.3/.env new file mode 100644 index 000000000..a94115d5d --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.3/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.4.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.3/Makefile b/linux/atlassian/fisheye-crucible/4/4.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.5/.env b/linux/atlassian/fisheye-crucible/4/4.4.5/.env new file mode 100644 index 000000000..22bd3119d --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.5/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.4.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.5/Makefile b/linux/atlassian/fisheye-crucible/4/4.4.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.6/.env b/linux/atlassian/fisheye-crucible/4/4.4.6/.env new file mode 100644 index 000000000..929e52514 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.6/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.4.6/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.6/Makefile b/linux/atlassian/fisheye-crucible/4/4.4.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.7/.env b/linux/atlassian/fisheye-crucible/4/4.4.7/.env new file mode 100644 index 000000000..b86d4eccc --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.7/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.4.7/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.7/Makefile b/linux/atlassian/fisheye-crucible/4/4.4.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.0/.env b/linux/atlassian/fisheye-crucible/4/4.5.0/.env new file mode 100644 index 000000000..99b0f6ac4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.0/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.5.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.0/Makefile b/linux/atlassian/fisheye-crucible/4/4.5.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.1/.env b/linux/atlassian/fisheye-crucible/4/4.5.1/.env new file mode 100644 index 000000000..ac456f740 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.1/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.5.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.1/Makefile b/linux/atlassian/fisheye-crucible/4/4.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.2/.env b/linux/atlassian/fisheye-crucible/4/4.5.2/.env new file mode 100644 index 000000000..add195b68 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.2/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.5.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.2/Makefile b/linux/atlassian/fisheye-crucible/4/4.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.3/.env b/linux/atlassian/fisheye-crucible/4/4.5.3/.env new file mode 100644 index 000000000..d300002c8 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.3/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.5.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.3/Makefile b/linux/atlassian/fisheye-crucible/4/4.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.4/.env b/linux/atlassian/fisheye-crucible/4/4.5.4/.env new file mode 100644 index 000000000..26463d78e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.4/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.5.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.4/Makefile b/linux/atlassian/fisheye-crucible/4/4.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.0/.env b/linux/atlassian/fisheye-crucible/4/4.6.0/.env new file mode 100644 index 000000000..1838c04b6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.0/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.6.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.0/Makefile b/linux/atlassian/fisheye-crucible/4/4.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.1/.env b/linux/atlassian/fisheye-crucible/4/4.6.1/.env new file mode 100644 index 000000000..2a94287ed --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.1/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.6.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.1/Makefile b/linux/atlassian/fisheye-crucible/4/4.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.0/.env b/linux/atlassian/fisheye-crucible/4/4.7.0/.env new file mode 100644 index 000000000..0e1fcf2a6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.0/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.7.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.0/Makefile b/linux/atlassian/fisheye-crucible/4/4.7.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.1/.env b/linux/atlassian/fisheye-crucible/4/4.7.1/.env new file mode 100644 index 000000000..cb7af87cb --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.1/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.7.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.1/Makefile b/linux/atlassian/fisheye-crucible/4/4.7.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.2/.env b/linux/atlassian/fisheye-crucible/4/4.7.2/.env new file mode 100644 index 000000000..c760b7de3 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.2/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.7.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.2/Makefile b/linux/atlassian/fisheye-crucible/4/4.7.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.3/.env b/linux/atlassian/fisheye-crucible/4/4.7.3/.env new file mode 100644 index 000000000..4073ee327 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.3/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.7.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.3/Makefile b/linux/atlassian/fisheye-crucible/4/4.7.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.0/.env b/linux/atlassian/fisheye-crucible/4/4.8.0/.env new file mode 100644 index 000000000..fe4acccd8 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.0/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.8.0/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.0/Makefile b/linux/atlassian/fisheye-crucible/4/4.8.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.1/.env b/linux/atlassian/fisheye-crucible/4/4.8.1/.env new file mode 100644 index 000000000..3c55bf46e --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.1/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.8.1/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.1/Makefile b/linux/atlassian/fisheye-crucible/4/4.8.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.2/.env b/linux/atlassian/fisheye-crucible/4/4.8.2/.env new file mode 100644 index 000000000..1f020413d --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.2/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.8.2/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.2/Makefile b/linux/atlassian/fisheye-crucible/4/4.8.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.3/.env b/linux/atlassian/fisheye-crucible/4/4.8.3/.env new file mode 100644 index 000000000..d1e9bb0fd --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.3/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.8.3/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.3/Makefile b/linux/atlassian/fisheye-crucible/4/4.8.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.4/.env b/linux/atlassian/fisheye-crucible/4/4.8.4/.env new file mode 100644 index 000000000..b089fcc01 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.4/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.8.4/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.4/Makefile b/linux/atlassian/fisheye-crucible/4/4.8.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.5/.env b/linux/atlassian/fisheye-crucible/4/4.8.5/.env new file mode 100644 index 000000000..c5b045f1b --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.5/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.8.5/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.5/Makefile b/linux/atlassian/fisheye-crucible/4/4.8.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.6/.env b/linux/atlassian/fisheye-crucible/4/4.8.6/.env new file mode 100644 index 000000000..cc3d229c4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.6/Dockerfile b/linux/atlassian/fisheye-crucible/4/4.8.6/Dockerfile new file mode 100644 index 000000000..4426bcb90 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.6/Makefile b/linux/atlassian/fisheye-crucible/4/4.8.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/README.md b/linux/atlassian/fisheye-crucible/README.md index 246a05c39..9cddc1146 100644 --- a/linux/atlassian/fisheye-crucible/README.md +++ b/linux/atlassian/fisheye-crucible/README.md @@ -10,4 +10,117 @@ All presented images avalible on our repo in docker hub. ------- -*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 +*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/atlassian/fisheye-crucible/latest/.env b/linux/atlassian/fisheye-crucible/latest/.env new file mode 100644 index 000000000..cc3d229c4 --- /dev/null +++ b/linux/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/atlassian/fisheye-crucible/latest/Dockerfile b/linux/atlassian/fisheye-crucible/latest/Dockerfile index 8ef319b91..4426bcb90 100644 --- a/linux/atlassian/fisheye-crucible/latest/Dockerfile +++ b/linux/atlassian/fisheye-crucible/latest/Dockerfile @@ -5,8 +5,9 @@ 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 +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL ################################################################## # Setup @@ -28,16 +29,16 @@ 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} \ + && 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-${FECRU_VERSION}.zip \ - && rm -rfv /tmp/fecru-${FECRU_VERSION} \ + && rm -rfv /tmp/fisheye-${RELEASE}.zip \ + && rm -rfv /tmp/fecru-${RELEASE} \ && rm -rfv /var/lib/apt/lists/* \ && rm -rfv /var/cache/apt/archives/*.deb diff --git a/linux/atlassian/fisheye-crucible/latest/Makefile b/linux/atlassian/fisheye-crucible/latest/Makefile index 973415421..82c5a2de6 100644 --- a/linux/atlassian/fisheye-crucible/latest/Makefile +++ b/linux/atlassian/fisheye-crucible/latest/Makefile @@ -1,5 +1,5 @@ -all: fisheye-crucible +all: app -fisheye-crucible: - docker build --compress -t epicmorg/fisheye-crucible:latest . - docker push epicmorg/fisheye-crucible:latest \ No newline at end of file +app: + docker-compose build --compress + docker-compose push 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/fisheye-crucible/latest/docker-compose.yml b/linux/atlassian/fisheye-crucible/latest/docker-compose.yml new file mode 100644 index 000000000..ab81bd97c --- /dev/null +++ b/linux/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 From 98fec6e9d936c83a191847bb1e10740127b14072 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 03:14:47 +0300 Subject: [PATCH 018/144] jira-latest fix --- linux/atlassian/jira/latest/.env | 3 +++ linux/atlassian/jira/latest/Dockerfile | 7 +++++-- linux/atlassian/jira/latest/Dockerfile.jdk11 | 7 +++++-- linux/atlassian/jira/latest/Makefile | 8 ++++---- linux/atlassian/jira/latest/docker-compose.yml | 17 +++++++++++++++++ 5 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 linux/atlassian/jira/latest/.env create mode 100644 linux/atlassian/jira/latest/docker-compose.yml diff --git a/linux/atlassian/jira/latest/.env b/linux/atlassian/jira/latest/.env new file mode 100644 index 000000000..a127c6f7b --- /dev/null +++ b/linux/atlassian/jira/latest/.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/atlassian/jira/latest/Dockerfile b/linux/atlassian/jira/latest/Dockerfile index b856a7fb9..eeec7c1d8 100644 --- a/linux/atlassian/jira/latest/Dockerfile +++ b/linux/atlassian/jira/latest/Dockerfile @@ -5,8 +5,11 @@ ARG DEBIAN_FRONTEND=noninteractive ################################################################## # ARGuments ################################################################## -ARG JIRA_VERSION=8.17.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/latest/Dockerfile.jdk11 b/linux/atlassian/jira/latest/Dockerfile.jdk11 index d85b2120b..a98a20e49 100644 --- a/linux/atlassian/jira/latest/Dockerfile.jdk11 +++ b/linux/atlassian/jira/latest/Dockerfile.jdk11 @@ -5,8 +5,11 @@ ARG DEBIAN_FRONTEND=noninteractive ################################################################## # ARGuments ################################################################## -ARG JIRA_VERSION=8.17.0 -ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${JIRA_VERSION}.tar.gz + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/jira/latest/Makefile b/linux/atlassian/jira/latest/Makefile index 85c8a1f2c..82c5a2de6 100644 --- a/linux/atlassian/jira/latest/Makefile +++ b/linux/atlassian/jira/latest/Makefile @@ -1,5 +1,5 @@ -all: jr +all: app -jr: - docker build --compress -t epicmorg/jira . - docker push epicmorg/jira \ No newline at end of file +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/latest/docker-compose.yml b/linux/atlassian/jira/latest/docker-compose.yml new file mode 100644 index 000000000..89548e5ac --- /dev/null +++ b/linux/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 From ba4896e92755f29dad1f65542d6397fd81023bb2 Mon Sep 17 00:00:00 2001 From: Odmin Date: Wed, 19 May 2021 03:16:05 +0300 Subject: [PATCH 019/144] chmox +x for *.sh --- bin/dotnet/data/fisheye-crucible/templates/2/entrypoint.sh | 0 bin/dotnet/data/fisheye-crucible/templates/3/entrypoint.sh | 0 bin/dotnet/data/fisheye-crucible/templates/4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh | 0 186 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 bin/dotnet/data/fisheye-crucible/templates/2/entrypoint.sh mode change 100644 => 100755 bin/dotnet/data/fisheye-crucible/templates/3/entrypoint.sh mode change 100644 => 100755 bin/dotnet/data/fisheye-crucible/templates/4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh diff --git a/bin/dotnet/data/fisheye-crucible/templates/2/entrypoint.sh b/bin/dotnet/data/fisheye-crucible/templates/2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/bin/dotnet/data/fisheye-crucible/templates/3/entrypoint.sh b/bin/dotnet/data/fisheye-crucible/templates/3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/bin/dotnet/data/fisheye-crucible/templates/4/entrypoint.sh b/bin/dotnet/data/fisheye-crucible/templates/4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh old mode 100644 new mode 100755 From d0b71d567e00f3e463573fbf95b4476fc166d23e Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 03:25:48 +0300 Subject: [PATCH 020/144] jira8 jdk11 new templates --- .../data/jira/templates/8/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../data/jira/templates/8/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.10.0/Dockerfile.jdk11 | 8 +-- .../jira/8/8.10.0/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.10.1/Dockerfile.jdk11 | 8 +-- .../jira/8/8.10.1/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.11.0/Dockerfile.jdk11 | 8 +-- .../jira/8/8.11.0/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.11.1/Dockerfile.jdk11 | 8 +-- .../jira/8/8.11.1/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.12.0/Dockerfile.jdk11 | 8 +-- .../jira/8/8.12.0/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.12.1/Dockerfile.jdk11 | 8 +-- .../jira/8/8.12.1/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.12.2/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.12.2/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.12.3/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.12.3/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.13.0/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.13.0/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.13.1/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.13.1/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.13.2/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.13.2/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.13.3/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.13.3/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.13.4/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.13.4/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.13.5/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.13.5/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.13.6/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.13.6/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.13.7/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.13.7/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.14.0/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.14.0/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.14.1/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.14.1/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.15.0/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.15.0/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.15.1/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.15.1/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.16.0/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.16.0/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.16.1/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.16.1/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.17.0/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.17.0/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.2.0/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.2.1/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.2.2/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.2.3/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.2.4/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.2.5/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.2.6/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.3.0/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.3.1/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.3.2/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.3.3/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.3.4/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.3.5/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.4.0/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.4.1/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.4.2/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.4.3/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.5.0/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.5.1/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.5.10/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.5.10/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.5.11/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.5.11/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.5.12/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.5.12/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.5.13/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.5.13/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.5.14/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.5.14/docker-compose.yml | 8 +++ .../atlassian/jira/8/8.5.15/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../jira/8/8.5.15/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.5.2/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.5.3/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.4/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../atlassian/jira/8/8.5.4/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.5/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../atlassian/jira/8/8.5.5/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.6/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../atlassian/jira/8/8.5.6/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.7/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../atlassian/jira/8/8.5.7/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.8/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../atlassian/jira/8/8.5.8/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.5.9/Dockerfile.jdk11 | 49 +++++++++++++++++++ .../atlassian/jira/8/8.5.9/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.6.0/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.6.1/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.7.0/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.7.1/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.8.0/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.8.1/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.9.0/docker-compose.yml | 8 +++ linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 | 8 +-- .../atlassian/jira/8/8.9.1/docker-compose.yml | 8 +++ 130 files changed, 2165 insertions(+), 105 deletions(-) create mode 100644 bin/dotnet/data/jira/templates/8/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.12.2/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.12.3/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.13.0/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.13.1/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.13.2/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.13.3/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.13.4/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.13.5/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.13.6/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.13.7/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.14.0/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.14.1/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.15.0/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.15.1/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.16.0/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.16.1/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.17.0/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.10/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.11/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.12/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.13/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.14/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.15/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.4/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.5/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.6/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.7/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.8/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.9/Dockerfile.jdk11 diff --git a/bin/dotnet/data/jira/templates/8/Dockerfile.jdk11 b/bin/dotnet/data/jira/templates/8/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/jira/templates/8/docker-compose.yml b/bin/dotnet/data/jira/templates/8/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/bin/dotnet/data/jira/templates/8/docker-compose.yml +++ b/bin/dotnet/data/jira/templates/8/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.10.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.10.0/Dockerfile.jdk11 index 749e69989..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.10.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.10.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.10.0/docker-compose.yml b/linux/atlassian/jira/8/8.10.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.10.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.10.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.10.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.10.1/Dockerfile.jdk11 index e1a049974..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.10.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.10.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.10.1/docker-compose.yml b/linux/atlassian/jira/8/8.10.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.10.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.10.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.11.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.11.0/Dockerfile.jdk11 index 9687567d2..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.11.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.11.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.11.0/docker-compose.yml b/linux/atlassian/jira/8/8.11.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.11.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.11.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.11.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.11.1/Dockerfile.jdk11 index 1c3aa37b9..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.11.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.11.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.11.1/docker-compose.yml b/linux/atlassian/jira/8/8.11.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.11.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.11.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.12.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.12.0/Dockerfile.jdk11 index caea525f8..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.12.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.12.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.12.0/docker-compose.yml b/linux/atlassian/jira/8/8.12.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.12.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.12.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.12.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.12.1/Dockerfile.jdk11 index 328e36818..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.12.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.12.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.12.1/docker-compose.yml b/linux/atlassian/jira/8/8.12.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.12.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.12.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.12.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.12.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.12.2/docker-compose.yml b/linux/atlassian/jira/8/8.12.2/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.12.2/docker-compose.yml +++ b/linux/atlassian/jira/8/8.12.2/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.12.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.12.3/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.12.3/docker-compose.yml b/linux/atlassian/jira/8/8.12.3/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.12.3/docker-compose.yml +++ b/linux/atlassian/jira/8/8.12.3/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.13.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.0/docker-compose.yml b/linux/atlassian/jira/8/8.13.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.13.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.13.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.13.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.1/docker-compose.yml b/linux/atlassian/jira/8/8.13.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.13.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.13.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.13.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.2/docker-compose.yml b/linux/atlassian/jira/8/8.13.2/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.13.2/docker-compose.yml +++ b/linux/atlassian/jira/8/8.13.2/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.13.3/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.3/docker-compose.yml b/linux/atlassian/jira/8/8.13.3/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.13.3/docker-compose.yml +++ b/linux/atlassian/jira/8/8.13.3/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.4/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.13.4/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.4/docker-compose.yml b/linux/atlassian/jira/8/8.13.4/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.13.4/docker-compose.yml +++ b/linux/atlassian/jira/8/8.13.4/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.5/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.13.5/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.5/docker-compose.yml b/linux/atlassian/jira/8/8.13.5/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.13.5/docker-compose.yml +++ b/linux/atlassian/jira/8/8.13.5/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.6/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.13.6/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.6/docker-compose.yml b/linux/atlassian/jira/8/8.13.6/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.13.6/docker-compose.yml +++ b/linux/atlassian/jira/8/8.13.6/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.7/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.13.7/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.7/docker-compose.yml b/linux/atlassian/jira/8/8.13.7/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.13.7/docker-compose.yml +++ b/linux/atlassian/jira/8/8.13.7/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.14.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.14.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.14.0/docker-compose.yml b/linux/atlassian/jira/8/8.14.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.14.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.14.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.14.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.14.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.14.1/docker-compose.yml b/linux/atlassian/jira/8/8.14.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.14.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.14.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.15.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.15.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.15.0/docker-compose.yml b/linux/atlassian/jira/8/8.15.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.15.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.15.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.15.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.15.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.15.1/docker-compose.yml b/linux/atlassian/jira/8/8.15.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.15.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.15.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.16.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.16.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.0/docker-compose.yml b/linux/atlassian/jira/8/8.16.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.16.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.16.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.16.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.16.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.1/docker-compose.yml b/linux/atlassian/jira/8/8.16.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.16.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.16.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.17.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.17.0/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.17.0/docker-compose.yml b/linux/atlassian/jira/8/8.17.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.17.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.17.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 index 6bab33843..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.0/docker-compose.yml b/linux/atlassian/jira/8/8.2.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.2.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.2.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 index f1dc5bd51..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.1/docker-compose.yml b/linux/atlassian/jira/8/8.2.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.2.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.2.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 index eb09f592e..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.2/docker-compose.yml b/linux/atlassian/jira/8/8.2.2/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.2.2/docker-compose.yml +++ b/linux/atlassian/jira/8/8.2.2/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 index 5d85db334..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.3/docker-compose.yml b/linux/atlassian/jira/8/8.2.3/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.2.3/docker-compose.yml +++ b/linux/atlassian/jira/8/8.2.3/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 index fe86295f7..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.4/docker-compose.yml b/linux/atlassian/jira/8/8.2.4/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.2.4/docker-compose.yml +++ b/linux/atlassian/jira/8/8.2.4/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 index d6498ec49..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.5/docker-compose.yml b/linux/atlassian/jira/8/8.2.5/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.2.5/docker-compose.yml +++ b/linux/atlassian/jira/8/8.2.5/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 index 74207d383..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.2.6/docker-compose.yml b/linux/atlassian/jira/8/8.2.6/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.2.6/docker-compose.yml +++ b/linux/atlassian/jira/8/8.2.6/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 index 510cccac8..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.0/docker-compose.yml b/linux/atlassian/jira/8/8.3.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.3.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.3.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 index ba2aaf577..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.1/docker-compose.yml b/linux/atlassian/jira/8/8.3.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.3.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.3.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 index 23d3e6fd8..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.2/docker-compose.yml b/linux/atlassian/jira/8/8.3.2/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.3.2/docker-compose.yml +++ b/linux/atlassian/jira/8/8.3.2/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 index 2ad7f24b0..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.3/docker-compose.yml b/linux/atlassian/jira/8/8.3.3/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.3.3/docker-compose.yml +++ b/linux/atlassian/jira/8/8.3.3/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 index cb9199c1e..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.4/docker-compose.yml b/linux/atlassian/jira/8/8.3.4/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.3.4/docker-compose.yml +++ b/linux/atlassian/jira/8/8.3.4/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 index 40f571e6f..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.3.5/docker-compose.yml b/linux/atlassian/jira/8/8.3.5/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.3.5/docker-compose.yml +++ b/linux/atlassian/jira/8/8.3.5/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 index 575fdcbd3..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.4.0/docker-compose.yml b/linux/atlassian/jira/8/8.4.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.4.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.4.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 index a0be846db..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.4.1/docker-compose.yml b/linux/atlassian/jira/8/8.4.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.4.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.4.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 index b39613392..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.4.2/docker-compose.yml b/linux/atlassian/jira/8/8.4.2/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.4.2/docker-compose.yml +++ b/linux/atlassian/jira/8/8.4.2/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 index d76d43725..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.4.3/docker-compose.yml b/linux/atlassian/jira/8/8.4.3/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.4.3/docker-compose.yml +++ b/linux/atlassian/jira/8/8.4.3/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 index f43659f70..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.0/docker-compose.yml b/linux/atlassian/jira/8/8.5.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 index c03ba4349..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.1/docker-compose.yml b/linux/atlassian/jira/8/8.5.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.10/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.10/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.10/docker-compose.yml b/linux/atlassian/jira/8/8.5.10/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.10/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.10/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.11/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.11/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.11/docker-compose.yml b/linux/atlassian/jira/8/8.5.11/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.11/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.11/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.12/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.12/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.12/docker-compose.yml b/linux/atlassian/jira/8/8.5.12/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.12/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.12/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.13/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.13/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.13/docker-compose.yml b/linux/atlassian/jira/8/8.5.13/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.13/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.13/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.14/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.14/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.14/docker-compose.yml b/linux/atlassian/jira/8/8.5.14/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.14/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.14/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.15/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.15/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.15/docker-compose.yml b/linux/atlassian/jira/8/8.5.15/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.15/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.15/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 index b58a1df0f..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.2/docker-compose.yml b/linux/atlassian/jira/8/8.5.2/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.2/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.2/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 index 30bc99420..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.5.3/docker-compose.yml b/linux/atlassian/jira/8/8.5.3/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.3/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.3/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.4/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.4/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.4/docker-compose.yml b/linux/atlassian/jira/8/8.5.4/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.4/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.4/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.5/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.5/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.5/docker-compose.yml b/linux/atlassian/jira/8/8.5.5/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.5/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.5/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.6/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.6/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.6/docker-compose.yml b/linux/atlassian/jira/8/8.5.6/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.6/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.6/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.7/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.7/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.7/docker-compose.yml b/linux/atlassian/jira/8/8.5.7/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.7/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.7/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.8/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.8/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.8/docker-compose.yml b/linux/atlassian/jira/8/8.5.8/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.8/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.8/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.9/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.9/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.9/docker-compose.yml b/linux/atlassian/jira/8/8.5.9/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.5.9/docker-compose.yml +++ b/linux/atlassian/jira/8/8.5.9/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 index be0f685fb..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.6.0/docker-compose.yml b/linux/atlassian/jira/8/8.6.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.6.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.6.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 index 6902e4045..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.6.1/docker-compose.yml b/linux/atlassian/jira/8/8.6.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.6.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.6.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 index 0c61c2e3c..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.7.0/docker-compose.yml b/linux/atlassian/jira/8/8.7.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.7.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.7.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 index 899c05e47..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.7.1/docker-compose.yml b/linux/atlassian/jira/8/8.7.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.7.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.7.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 index f444bdf75..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.8.0/docker-compose.yml b/linux/atlassian/jira/8/8.8.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.8.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.8.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 index 98f39d3ea..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.8.1/docker-compose.yml b/linux/atlassian/jira/8/8.8.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.8.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.8.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 index 1101a0ab7..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.9.0/docker-compose.yml b/linux/atlassian/jira/8/8.9.0/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.9.0/docker-compose.yml +++ b/linux/atlassian/jira/8/8.9.0/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 index c1c5d4a35..a98a20e49 100644 --- a/linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 +++ b/linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup @@ -34,7 +37,6 @@ RUN mkdir -p ${JIRA_INSTALL_DIR} \ && sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh \ && sed -i -e 's/grep "java version"/grep -E "(openjdk|java) version"/g' ${JIRA_INSTALL_DIR}/bin/check-java.sh \ && sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml && \ - update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && \ apt clean -y && \ apt autoclean -y && \ diff --git a/linux/atlassian/jira/8/8.9.1/docker-compose.yml b/linux/atlassian/jira/8/8.9.1/docker-compose.yml index 4269f77ac..0f7a373af 100644 --- a/linux/atlassian/jira/8/8.9.1/docker-compose.yml +++ b/linux/atlassian/jira/8/8.9.1/docker-compose.yml @@ -4,6 +4,14 @@ services: 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} \ No newline at end of file From 6e1ff20dfeb81e12b08621aff2647d091ebcaec7 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 19 May 2021 12:41:47 +0300 Subject: [PATCH 021/144] Rename Epicmorg.DockerGenerator.csproj to EpicMorg.DockerGenerator.csproj --- ...org.DockerGenerator.csproj => EpicMorg.DockerGenerator.csproj} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename bin/dotnet/{Epicmorg.DockerGenerator.csproj => EpicMorg.DockerGenerator.csproj} (100%) diff --git a/bin/dotnet/Epicmorg.DockerGenerator.csproj b/bin/dotnet/EpicMorg.DockerGenerator.csproj similarity index 100% rename from bin/dotnet/Epicmorg.DockerGenerator.csproj rename to bin/dotnet/EpicMorg.DockerGenerator.csproj From a8698073ed3d414cd6499e3e57b16f0df7bf7207 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 19 May 2021 13:38:05 +0300 Subject: [PATCH 022/144] @kasthack fix war links --- bin/dotnet/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/dotnet/Program.cs b/bin/dotnet/Program.cs index 77a211c0f..b1b804017 100644 --- a/bin/dotnet/Program.cs +++ b/bin/dotnet/Program.cs @@ -23,7 +23,7 @@ public static async Task Main(DirectoryInfo workdir, FileInfo json, string produ { 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.ToString().EndsWith(archiveType))) + foreach (var item in items.Where(a=>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); From b60cea16f70fc3cf444363643a8a5530faf1da57 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 15:31:26 +0300 Subject: [PATCH 023/144] fisheye-crucible 1 --- .../fisheye-crucible/templates/1/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/templates/1/Makefile | 5 ++ .../templates/1/docker-compose.yml | 9 ++++ .../templates/1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.0.3/.env | 3 ++ .../fisheye-crucible/1/1.0.3/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.0.3/Makefile | 5 ++ .../1/1.0.3/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.0.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.0.4/.env | 3 ++ .../fisheye-crucible/1/1.0.4/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.0.4/Makefile | 5 ++ .../1/1.0.4/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.0.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.0/.env | 3 ++ .../fisheye-crucible/1/1.0/Dockerfile | 49 +++++++++++++++++++ .../atlassian/fisheye-crucible/1/1.0/Makefile | 5 ++ .../fisheye-crucible/1/1.0/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.0/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.1.1/.env | 3 ++ .../fisheye-crucible/1/1.1.1/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.1.1/Makefile | 5 ++ .../1/1.1.1/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.1.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.1.2/.env | 3 ++ .../fisheye-crucible/1/1.1.2/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.1.2/Makefile | 5 ++ .../1/1.1.2/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.1.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.1.3/.env | 3 ++ .../fisheye-crucible/1/1.1.3/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.1.3/Makefile | 5 ++ .../1/1.1.3/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.1.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.1.4/.env | 3 ++ .../fisheye-crucible/1/1.1.4/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.1.4/Makefile | 5 ++ .../1/1.1.4/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.1.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.1/.env | 3 ++ .../fisheye-crucible/1/1.1/Dockerfile | 49 +++++++++++++++++++ .../atlassian/fisheye-crucible/1/1.1/Makefile | 5 ++ .../fisheye-crucible/1/1.1/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.2.1/.env | 3 ++ .../fisheye-crucible/1/1.2.1/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.2.1/Makefile | 5 ++ .../1/1.2.1/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.2.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.2.2/.env | 3 ++ .../fisheye-crucible/1/1.2.2/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.2.2/Makefile | 5 ++ .../1/1.2.2/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.2.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.2.3/.env | 3 ++ .../fisheye-crucible/1/1.2.3/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.2.3/Makefile | 5 ++ .../1/1.2.3/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.2.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.2/.env | 3 ++ .../fisheye-crucible/1/1.2/Dockerfile | 49 +++++++++++++++++++ .../atlassian/fisheye-crucible/1/1.2/Makefile | 5 ++ .../fisheye-crucible/1/1.2/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.5.1/.env | 3 ++ .../fisheye-crucible/1/1.5.1/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.5.1/Makefile | 5 ++ .../1/1.5.1/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.5.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.5.2/.env | 3 ++ .../fisheye-crucible/1/1.5.2/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.5.2/Makefile | 5 ++ .../1/1.5.2/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.5.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.5.3/.env | 3 ++ .../fisheye-crucible/1/1.5.3/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.5.3/Makefile | 5 ++ .../1/1.5.3/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.5.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.5.4/.env | 3 ++ .../fisheye-crucible/1/1.5.4/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.5.4/Makefile | 5 ++ .../1/1.5.4/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.5.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.5/.env | 3 ++ .../fisheye-crucible/1/1.5/Dockerfile | 49 +++++++++++++++++++ .../atlassian/fisheye-crucible/1/1.5/Makefile | 5 ++ .../fisheye-crucible/1/1.5/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.5/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.6.0/.env | 3 ++ .../fisheye-crucible/1/1.6.0/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.0/Makefile | 5 ++ .../1/1.6.0/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.0/entrypoint.sh | 33 +++++++++++++ .../fisheye-crucible/1/1.6.0Beta1/.env | 3 ++ .../fisheye-crucible/1/1.6.0Beta1/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.0Beta1/Makefile | 5 ++ .../1/1.6.0Beta1/docker-compose.yml | 9 ++++ .../1/1.6.0Beta1/entrypoint.sh | 33 +++++++++++++ .../fisheye-crucible/1/1.6.0Beta2/.env | 3 ++ .../fisheye-crucible/1/1.6.0Beta2/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.0Beta2/Makefile | 5 ++ .../1/1.6.0Beta2/docker-compose.yml | 9 ++++ .../1/1.6.0Beta2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.6.1/.env | 3 ++ .../fisheye-crucible/1/1.6.1/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.1/Makefile | 5 ++ .../1/1.6.1/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.1/entrypoint.sh | 33 +++++++++++++ .../atlassian/fisheye-crucible/1/1.6.2.1/.env | 3 ++ .../fisheye-crucible/1/1.6.2.1/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.2.1/Makefile | 5 ++ .../1/1.6.2.1/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.2.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.6.2/.env | 3 ++ .../fisheye-crucible/1/1.6.2/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.2/Makefile | 5 ++ .../1/1.6.2/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.6.3/.env | 3 ++ .../fisheye-crucible/1/1.6.3/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.3/Makefile | 5 ++ .../1/1.6.3/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.6.4/.env | 3 ++ .../fisheye-crucible/1/1.6.4/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.4/Makefile | 5 ++ .../1/1.6.4/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.4/entrypoint.sh | 33 +++++++++++++ .../atlassian/fisheye-crucible/1/1.6.5.a/.env | 3 ++ .../fisheye-crucible/1/1.6.5.a/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.5.a/Makefile | 5 ++ .../1/1.6.5.a/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.5.a/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.6.5/.env | 3 ++ .../fisheye-crucible/1/1.6.5/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.5/Makefile | 5 ++ .../1/1.6.5/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.5/entrypoint.sh | 33 +++++++++++++ .../atlassian/fisheye-crucible/1/1.6.5a/.env | 3 ++ .../fisheye-crucible/1/1.6.5a/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.5a/Makefile | 5 ++ .../1/1.6.5a/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.5a/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye-crucible/1/1.6.6/.env | 3 ++ .../fisheye-crucible/1/1.6.6/Dockerfile | 49 +++++++++++++++++++ .../fisheye-crucible/1/1.6.6/Makefile | 5 ++ .../1/1.6.6/docker-compose.yml | 9 ++++ .../fisheye-crucible/1/1.6.6/entrypoint.sh | 33 +++++++++++++ 149 files changed, 2967 insertions(+) create mode 100644 bin/dotnet/data/fisheye-crucible/templates/1/Dockerfile create mode 100644 bin/dotnet/data/fisheye-crucible/templates/1/Makefile create mode 100644 bin/dotnet/data/fisheye-crucible/templates/1/docker-compose.yml create mode 100644 bin/dotnet/data/fisheye-crucible/templates/1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.3/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.4/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.0/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.1/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.2/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.3/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.4/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.1.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.1/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.1/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.2/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.3/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.2/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.1/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.2/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.3/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.4/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.5/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.1/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2.1/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2.1/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2.1/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.3/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.3/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.3/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.4/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.4/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.4/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5.a/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5.a/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5.a/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5.a/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5a/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5a/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5a/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5a/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.6/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.6/Dockerfile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.6/Makefile create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh diff --git a/bin/dotnet/data/fisheye-crucible/templates/1/Dockerfile b/bin/dotnet/data/fisheye-crucible/templates/1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/bin/dotnet/data/fisheye-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/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/bin/dotnet/data/fisheye-crucible/templates/1/Makefile b/bin/dotnet/data/fisheye-crucible/templates/1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/fisheye-crucible/templates/1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/fisheye-crucible/templates/1/docker-compose.yml b/bin/dotnet/data/fisheye-crucible/templates/1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/bin/dotnet/data/fisheye-crucible/templates/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/bin/dotnet/data/fisheye-crucible/templates/1/entrypoint.sh b/bin/dotnet/data/fisheye-crucible/templates/1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/bin/dotnet/data/fisheye-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/atlassian/fisheye-crucible/1/1.0.3/.env b/linux/atlassian/fisheye-crucible/1/1.0.3/.env new file mode 100644 index 000000000..b4fcad0b7 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.0.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.0.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.0.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.0.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.0.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.0.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.0.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.0.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.0.4/.env b/linux/atlassian/fisheye-crucible/1/1.0.4/.env new file mode 100644 index 000000000..886036292 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.0.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.0.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.0.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.0.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.0.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.0.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.0.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.0.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.0/.env b/linux/atlassian/fisheye-crucible/1/1.0/.env new file mode 100644 index 000000000..555a888db --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.0/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.0/Makefile b/linux/atlassian/fisheye-crucible/1/1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/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/atlassian/fisheye-crucible/1/1.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1.1/.env b/linux/atlassian/fisheye-crucible/1/1.1.1/.env new file mode 100644 index 000000000..4696e7ad0 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.1.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.1.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.1.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.1.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1.2/.env b/linux/atlassian/fisheye-crucible/1/1.1.2/.env new file mode 100644 index 000000000..c7d19a235 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.1.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.1.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.1.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.1.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1.3/.env b/linux/atlassian/fisheye-crucible/1/1.1.3/.env new file mode 100644 index 000000000..7a24531fb --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.1.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.1.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.1.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.1.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.1.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1.4/.env b/linux/atlassian/fisheye-crucible/1/1.1.4/.env new file mode 100644 index 000000000..46b605d14 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.1.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.1.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.1.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.1.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.1.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.1.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1/.env b/linux/atlassian/fisheye-crucible/1/1.1/.env new file mode 100644 index 000000000..d42a2c90e --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/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/atlassian/fisheye-crucible/1/1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.2.1/.env b/linux/atlassian/fisheye-crucible/1/1.2.1/.env new file mode 100644 index 000000000..e73a23819 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.2.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.2.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.2.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.2.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.2.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.2.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.2.2/.env b/linux/atlassian/fisheye-crucible/1/1.2.2/.env new file mode 100644 index 000000000..f4ca6a51c --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.2.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.2.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.2.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.2.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.2.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.2.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.2.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.2.3/.env b/linux/atlassian/fisheye-crucible/1/1.2.3/.env new file mode 100644 index 000000000..f8da3d8cb --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.2.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.2.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.2.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.2.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.2.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.2.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.2.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.2/.env b/linux/atlassian/fisheye-crucible/1/1.2/.env new file mode 100644 index 000000000..aaba1d4a2 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/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/atlassian/fisheye-crucible/1/1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5.1/.env b/linux/atlassian/fisheye-crucible/1/1.5.1/.env new file mode 100644 index 000000000..e8a6ca3e4 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.5.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.5.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5.2/.env b/linux/atlassian/fisheye-crucible/1/1.5.2/.env new file mode 100644 index 000000000..6190ac222 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.5.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.5.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5.3/.env b/linux/atlassian/fisheye-crucible/1/1.5.3/.env new file mode 100644 index 000000000..952eaa7e2 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.5.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.5.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5.4/.env b/linux/atlassian/fisheye-crucible/1/1.5.4/.env new file mode 100644 index 000000000..c184e0b01 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.5.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.5.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5/.env b/linux/atlassian/fisheye-crucible/1/1.5/.env new file mode 100644 index 000000000..0f80a554e --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.5/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.5/Makefile b/linux/atlassian/fisheye-crucible/1/1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/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/atlassian/fisheye-crucible/1/1.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.0/.env b/linux/atlassian/fisheye-crucible/1/1.6.0/.env new file mode 100644 index 000000000..da149cae5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.0/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.0/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.0/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.0/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.0Beta1/.env b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/.env new file mode 100644 index 000000000..07ec71ef9 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.0Beta1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.0Beta1/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/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/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.0Beta2/.env b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/.env new file mode 100644 index 000000000..5e27753f8 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.0Beta2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.0Beta2/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/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/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.1/.env b/linux/atlassian/fisheye-crucible/1/1.6.1/.env new file mode 100644 index 000000000..c2bff741b --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.2.1/.env b/linux/atlassian/fisheye-crucible/1/1.6.2.1/.env new file mode 100644 index 000000000..cad3b7d01 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.2.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.2.1/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.2.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.2.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.2.1/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.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/atlassian/fisheye-crucible/1/1.6.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.2.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.2/.env b/linux/atlassian/fisheye-crucible/1/1.6.2/.env new file mode 100644 index 000000000..8f98dad06 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.2/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.2/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.3/.env b/linux/atlassian/fisheye-crucible/1/1.6.3/.env new file mode 100644 index 000000000..fad673518 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.3/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.3/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.4/.env b/linux/atlassian/fisheye-crucible/1/1.6.4/.env new file mode 100644 index 000000000..ad8e970fa --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.4/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.4/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.5.a/.env b/linux/atlassian/fisheye-crucible/1/1.6.5.a/.env new file mode 100644 index 000000000..c628ed5de --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.5.a/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.5.a/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.5.a/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.5.a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.5.a/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.5.a/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.5.a/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/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.5/.env b/linux/atlassian/fisheye-crucible/1/1.6.5/.env new file mode 100644 index 000000000..43a8e7576 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.5/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.5/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.5/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.5/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.5a/.env b/linux/atlassian/fisheye-crucible/1/1.6.5a/.env new file mode 100644 index 000000000..6070c5b66 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.5a/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.5a/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.5a/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.5a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.5a/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5a/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.5a/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.5a/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/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.6/.env b/linux/atlassian/fisheye-crucible/1/1.6.6/.env new file mode 100644 index 000000000..dd85e3c14 --- /dev/null +++ b/linux/atlassian/fisheye-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/atlassian/fisheye-crucible/1/1.6.6/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.6/Dockerfile new file mode 100644 index 000000000..4eec725a4 --- /dev/null +++ b/linux/atlassian/fisheye-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/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/atlassian/fisheye-crucible/1/1.6.6/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.6.6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.6/docker-compose.yml new file mode 100644 index 000000000..fba8ce85f --- /dev/null +++ b/linux/atlassian/fisheye-crucible/1/1.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/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/fisheye-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 From 9282c6eb4c4586284be12be5e04c08a236253596 Mon Sep 17 00:00:00 2001 From: Odmin Date: Wed, 19 May 2021 15:33:04 +0300 Subject: [PATCH 024/144] chmox +x for *.sh --- bin/dotnet/data/fisheye-crucible/templates/1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.0.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.0.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.1.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.1.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.1.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.2.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.2.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.2.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.2.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh | 0 30 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 bin/dotnet/data/fisheye-crucible/templates/1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.0.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.0.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.1.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.1.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.1.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.2.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.2.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.2.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.2.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh diff --git a/bin/dotnet/data/fisheye-crucible/templates/1/entrypoint.sh b/bin/dotnet/data/fisheye-crucible/templates/1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.0.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.0.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.0.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.0.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.1.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.2.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.2.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh old mode 100644 new mode 100755 From dc637b84d253eb33bea27a76a9839092f8a06a10 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 15:40:49 +0300 Subject: [PATCH 025/144] edit --- .../atlassian/fisheye-crucible/1/1.0.1a/.env | 3 ++ .../1/{1.0.3 => 1.0.1a}/Dockerfile | 0 .../1/{1.0.3 => 1.0.1a}/Makefile | 0 .../1/{1.0.3 => 1.0.1a}/docker-compose.yml | 0 .../1/{1.0.3 => 1.0.1a}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.0.3/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.0.4/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.0/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.1.1/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.1.2/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.1.3/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.1.4/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.1/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.2.1/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.2.2/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.2.3/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.2.5/.env | 3 ++ .../1/{1.0.4 => 1.2.5}/Dockerfile | 0 .../1/{1.0.4 => 1.2.5}/Makefile | 0 .../1/{1.0.4 => 1.2.5}/docker-compose.yml | 0 .../1/{1.0.4 => 1.2.5}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.2/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.3.3/.env | 3 ++ .../1/{1.0 => 1.3.3}/Dockerfile | 0 .../1/{1.0 => 1.3.3}/Makefile | 0 .../1/{1.0 => 1.3.3}/docker-compose.yml | 0 .../1/{1.0 => 1.3.3}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.4/.env | 3 ++ .../1/{1.1.1 => 1.3.4}/Dockerfile | 0 .../1/{1.1.1 => 1.3.4}/Makefile | 0 .../1/{1.1.1 => 1.3.4}/docker-compose.yml | 0 .../1/{1.1.1 => 1.3.4}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.5/.env | 3 ++ .../1/{1.1.2 => 1.3.5}/Dockerfile | 0 .../1/{1.1.2 => 1.3.5}/Makefile | 0 .../1/{1.1.2 => 1.3.5}/docker-compose.yml | 0 .../1/{1.1.2 => 1.3.5}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.6/.env | 3 ++ .../1/{1.1.4 => 1.3.6}/Dockerfile | 0 .../1/{1.1.4 => 1.3.6}/Makefile | 0 .../1/{1.1.4 => 1.3.6}/docker-compose.yml | 0 .../1/{1.1.4 => 1.3.6}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.7/.env | 3 ++ .../1/{1.1 => 1.3.7}/Dockerfile | 0 .../1/{1.1 => 1.3.7}/Makefile | 0 .../1/{1.1 => 1.3.7}/docker-compose.yml | 0 .../1/{1.1 => 1.3.7}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.8/.env | 3 ++ .../1/{1.2.1 => 1.3.8}/Dockerfile | 0 .../1/{1.2.1 => 1.3.8}/Makefile | 0 .../1/{1.2.1 => 1.3.8}/docker-compose.yml | 0 .../1/{1.2.1 => 1.3.8}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.4.1/.env | 3 ++ .../1/{1.2.2 => 1.4.1}/Dockerfile | 0 .../1/{1.2.2 => 1.4.1}/Makefile | 0 .../1/{1.2.2 => 1.4.1}/docker-compose.yml | 0 .../1/{1.2.2 => 1.4.1}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.4.2/.env | 3 ++ .../1/{1.2.3 => 1.4.2}/Dockerfile | 0 .../1/{1.2.3 => 1.4.2}/Makefile | 0 .../1/{1.2.3 => 1.4.2}/docker-compose.yml | 0 .../1/{1.2.3 => 1.4.2}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.4.3/.env | 3 ++ .../1/{1.2 => 1.4.3}/Dockerfile | 0 .../1/{1.2 => 1.4.3}/Makefile | 0 .../1/{1.2 => 1.4.3}/docker-compose.yml | 0 .../1/{1.2 => 1.4.3}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.4/.env | 3 ++ .../1/{1.6.2.1 => 1.4}/Dockerfile | 0 .../1/{1.6.2.1 => 1.4}/Makefile | 0 .../1/{1.6.2.1 => 1.4}/docker-compose.yml | 0 .../1/{1.6.2.1 => 1.4}/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.5.1/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.5.2/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.5.3/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.5.4/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.5/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.6.0/.env | 2 +- .../fisheye-crucible/1/1.6.0Beta1/.env | 2 +- .../fisheye-crucible/1/1.6.0Beta2/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.6.1/.env | 2 +- .../atlassian/fisheye-crucible/1/1.6.2.1/.env | 3 -- linux/atlassian/fisheye-crucible/1/1.6.2/.env | 3 -- .../fisheye-crucible/1/1.6.2/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.2/Makefile | 5 -- .../1/1.6.2/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.6.2/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.6.3/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.6.4/.env | 2 +- .../atlassian/fisheye-crucible/1/1.6.5.a/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.6.5/.env | 2 +- .../atlassian/fisheye-crucible/1/1.6.5a/.env | 2 +- linux/atlassian/fisheye-crucible/1/1.6.6/.env | 2 +- 93 files changed, 52 insertions(+), 151 deletions(-) create mode 100644 linux/atlassian/fisheye-crucible/1/1.0.1a/.env rename linux/atlassian/fisheye-crucible/1/{1.0.3 => 1.0.1a}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.0.3 => 1.0.1a}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.0.3 => 1.0.1a}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.0.3 => 1.0.1a}/entrypoint.sh (100%) mode change 100755 => 100644 delete mode 100644 linux/atlassian/fisheye-crucible/1/1.0.3/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.0.4/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.0/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.1.1/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.1.2/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.1.4/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.1/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.2.1/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.2.2/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.2.3/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.2.5/.env rename linux/atlassian/fisheye-crucible/1/{1.0.4 => 1.2.5}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.0.4 => 1.2.5}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.0.4 => 1.2.5}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.0.4 => 1.2.5}/entrypoint.sh (100%) mode change 100755 => 100644 delete mode 100644 linux/atlassian/fisheye-crucible/1/1.2/.env create mode 100644 linux/atlassian/fisheye-crucible/1/1.3.3/.env rename linux/atlassian/fisheye-crucible/1/{1.0 => 1.3.3}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.0 => 1.3.3}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.0 => 1.3.3}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.0 => 1.3.3}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 linux/atlassian/fisheye-crucible/1/1.3.4/.env rename linux/atlassian/fisheye-crucible/1/{1.1.1 => 1.3.4}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.1.1 => 1.3.4}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.1.1 => 1.3.4}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.1.1 => 1.3.4}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 linux/atlassian/fisheye-crucible/1/1.3.5/.env rename linux/atlassian/fisheye-crucible/1/{1.1.2 => 1.3.5}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.1.2 => 1.3.5}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.1.2 => 1.3.5}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.1.2 => 1.3.5}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 linux/atlassian/fisheye-crucible/1/1.3.6/.env rename linux/atlassian/fisheye-crucible/1/{1.1.4 => 1.3.6}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.1.4 => 1.3.6}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.1.4 => 1.3.6}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.1.4 => 1.3.6}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 linux/atlassian/fisheye-crucible/1/1.3.7/.env rename linux/atlassian/fisheye-crucible/1/{1.1 => 1.3.7}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.1 => 1.3.7}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.1 => 1.3.7}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.1 => 1.3.7}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 linux/atlassian/fisheye-crucible/1/1.3.8/.env rename linux/atlassian/fisheye-crucible/1/{1.2.1 => 1.3.8}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.2.1 => 1.3.8}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.2.1 => 1.3.8}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.2.1 => 1.3.8}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 linux/atlassian/fisheye-crucible/1/1.4.1/.env rename linux/atlassian/fisheye-crucible/1/{1.2.2 => 1.4.1}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.2.2 => 1.4.1}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.2.2 => 1.4.1}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.2.2 => 1.4.1}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 linux/atlassian/fisheye-crucible/1/1.4.2/.env rename linux/atlassian/fisheye-crucible/1/{1.2.3 => 1.4.2}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.2.3 => 1.4.2}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.2.3 => 1.4.2}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.2.3 => 1.4.2}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 linux/atlassian/fisheye-crucible/1/1.4.3/.env rename linux/atlassian/fisheye-crucible/1/{1.2 => 1.4.3}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.2 => 1.4.3}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.2 => 1.4.3}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.2 => 1.4.3}/entrypoint.sh (100%) mode change 100755 => 100644 create mode 100644 linux/atlassian/fisheye-crucible/1/1.4/.env rename linux/atlassian/fisheye-crucible/1/{1.6.2.1 => 1.4}/Dockerfile (100%) rename linux/atlassian/fisheye-crucible/1/{1.6.2.1 => 1.4}/Makefile (100%) rename linux/atlassian/fisheye-crucible/1/{1.6.2.1 => 1.4}/docker-compose.yml (100%) rename linux/atlassian/fisheye-crucible/1/{1.6.2.1 => 1.4}/entrypoint.sh (100%) mode change 100755 => 100644 delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2.1/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.2/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.0.1a/.env b/linux/atlassian/fisheye-crucible/1/1.0.1a/.env new file mode 100644 index 000000000..09774c7f1 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.0.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.0.1a/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.3/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.0.1a/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.0.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.0.1a/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.3/Makefile rename to linux/atlassian/fisheye-crucible/1/1.0.1a/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.0.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.0.1a/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.3/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.0.1a/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.0.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.0.1a/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.3/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.0.1a/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.0.3/.env b/linux/atlassian/fisheye-crucible/1/1.0.3/.env deleted file mode 100644 index b4fcad0b7..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.0.3/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.0.3 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.0.3.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.0.4/.env b/linux/atlassian/fisheye-crucible/1/1.0.4/.env deleted file mode 100644 index 886036292..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.0.4/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.0.4 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.0.4.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.0/.env b/linux/atlassian/fisheye-crucible/1/1.0/.env deleted file mode 100644 index 555a888db..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.0/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.0 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.0-build-223.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.1.1/.env b/linux/atlassian/fisheye-crucible/1/1.1.1/.env deleted file mode 100644 index 4696e7ad0..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.1.1/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.1.1 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.1.2/.env b/linux/atlassian/fisheye-crucible/1/1.1.2/.env deleted file mode 100644 index c7d19a235..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.1.2/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.1.2 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.2.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.1.3/.env b/linux/atlassian/fisheye-crucible/1/1.1.3/.env index 7a24531fb..d77c95411 100644 --- a/linux/atlassian/fisheye-crucible/1/1.1.3/.env +++ b/linux/atlassian/fisheye-crucible/1/1.1.3/.env @@ -1,3 +1,3 @@ RELEASE=1.1.3 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.3.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.1.3-build-1.1-119c.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.1.4/.env b/linux/atlassian/fisheye-crucible/1/1.1.4/.env deleted file mode 100644 index 46b605d14..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.1.4/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.1.4 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.4.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.1/.env b/linux/atlassian/fisheye-crucible/1/1.1/.env deleted file mode 100644 index d42a2c90e..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.1/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.1 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.2.1/.env b/linux/atlassian/fisheye-crucible/1/1.2.1/.env deleted file mode 100644 index e73a23819..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.2.1/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.2.1 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.2.1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.2.2/.env b/linux/atlassian/fisheye-crucible/1/1.2.2/.env deleted file mode 100644 index f4ca6a51c..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.2.2/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.2.2 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.2.2.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.2.3/.env b/linux/atlassian/fisheye-crucible/1/1.2.3/.env deleted file mode 100644 index f8da3d8cb..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.2.3/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.2.3 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.2.3.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.2.5/.env b/linux/atlassian/fisheye-crucible/1/1.2.5/.env new file mode 100644 index 000000000..fc6a9304c --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.0.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.2.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.4/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.2.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.0.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.2.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.4/Makefile rename to linux/atlassian/fisheye-crucible/1/1.2.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.0.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.2.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.4/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.2.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.0.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.4/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.2/.env b/linux/atlassian/fisheye-crucible/1/1.2/.env deleted file mode 100644 index aaba1d4a2..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.2/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.2 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.2.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.3.3/.env b/linux/atlassian/fisheye-crucible/1/1.3.3/.env new file mode 100644 index 000000000..c207ee032 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.0/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.3.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.0/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0/Makefile rename to linux/atlassian/fisheye-crucible/1/1.3.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.3.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.3.4/.env b/linux/atlassian/fisheye-crucible/1/1.3.4/.env new file mode 100644 index 000000000..ad0a606c4 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.1.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.1/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.3.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.1.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.1/Makefile rename to linux/atlassian/fisheye-crucible/1/1.3.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.1.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.1/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.3.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.1/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.3.5/.env b/linux/atlassian/fisheye-crucible/1/1.3.5/.env new file mode 100644 index 000000000..0331f045c --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.1.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.2/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.3.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.1.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.2/Makefile rename to linux/atlassian/fisheye-crucible/1/1.3.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.1.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.2/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.3.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.2/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.3.6/.env b/linux/atlassian/fisheye-crucible/1/1.3.6/.env new file mode 100644 index 000000000..a3ecceee1 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.1.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.4/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.3.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.1.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.4/Makefile rename to linux/atlassian/fisheye-crucible/1/1.3.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.1.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.4/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.3.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.1.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1.4/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.3.7/.env b/linux/atlassian/fisheye-crucible/1/1.3.7/.env new file mode 100644 index 000000000..a78be37ed --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.3.7/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.7/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1/Makefile rename to linux/atlassian/fisheye-crucible/1/1.3.7/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.3.7/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.1/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.3.8/.env b/linux/atlassian/fisheye-crucible/1/1.3.8/.env new file mode 100644 index 000000000..9070c45a9 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.2.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.8/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.1/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.3.8/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.2.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.8/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.1/Makefile rename to linux/atlassian/fisheye-crucible/1/1.3.8/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.2.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.8/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.1/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.3.8/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.1/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.4.1/.env b/linux/atlassian/fisheye-crucible/1/1.4.1/.env new file mode 100644 index 000000000..59788e4b0 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.2.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.4.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.2/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.4.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.2.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.4.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.2/Makefile rename to linux/atlassian/fisheye-crucible/1/1.4.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.2.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.4.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.2/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.4.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.2.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.2/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.4.2/.env b/linux/atlassian/fisheye-crucible/1/1.4.2/.env new file mode 100644 index 000000000..b23287179 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.2.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.4.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.3/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.4.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.2.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.4.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.3/Makefile rename to linux/atlassian/fisheye-crucible/1/1.4.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.2.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.4.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.3/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.4.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.2.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2.3/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.4.3/.env b/linux/atlassian/fisheye-crucible/1/1.4.3/.env new file mode 100644 index 000000000..66a7ab561 --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.4.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.4.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.4.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2/Makefile rename to linux/atlassian/fisheye-crucible/1/1.4.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.4.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.4.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.2/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.4/.env b/linux/atlassian/fisheye-crucible/1/1.4/.env new file mode 100644 index 000000000..faf2bd26a --- /dev/null +++ b/linux/atlassian/fisheye-crucible/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/atlassian/fisheye-crucible/1/1.6.2.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.6.2.1/Dockerfile rename to linux/atlassian/fisheye-crucible/1/1.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/1/1.6.2.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.6.2.1/Makefile rename to linux/atlassian/fisheye-crucible/1/1.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.6.2.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.6.2.1/docker-compose.yml rename to linux/atlassian/fisheye-crucible/1/1.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/1/1.6.2.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.6.2.1/entrypoint.sh rename to linux/atlassian/fisheye-crucible/1/1.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.5.1/.env b/linux/atlassian/fisheye-crucible/1/1.5.1/.env index e8a6ca3e4..67893f9f5 100644 --- a/linux/atlassian/fisheye-crucible/1/1.5.1/.env +++ b/linux/atlassian/fisheye-crucible/1/1.5.1/.env @@ -1,3 +1,3 @@ RELEASE=1.5.1 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.1.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.5.2/.env b/linux/atlassian/fisheye-crucible/1/1.5.2/.env index 6190ac222..be267994e 100644 --- a/linux/atlassian/fisheye-crucible/1/1.5.2/.env +++ b/linux/atlassian/fisheye-crucible/1/1.5.2/.env @@ -1,3 +1,3 @@ RELEASE=1.5.2 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.2.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.2.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.5.3/.env b/linux/atlassian/fisheye-crucible/1/1.5.3/.env index 952eaa7e2..15528b579 100644 --- a/linux/atlassian/fisheye-crucible/1/1.5.3/.env +++ b/linux/atlassian/fisheye-crucible/1/1.5.3/.env @@ -1,3 +1,3 @@ RELEASE=1.5.3 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.3.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.3.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.5.4/.env b/linux/atlassian/fisheye-crucible/1/1.5.4/.env index c184e0b01..8e56c6a61 100644 --- a/linux/atlassian/fisheye-crucible/1/1.5.4/.env +++ b/linux/atlassian/fisheye-crucible/1/1.5.4/.env @@ -1,3 +1,3 @@ RELEASE=1.5.4 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.4.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.4.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.5/.env b/linux/atlassian/fisheye-crucible/1/1.5/.env index 0f80a554e..89f754df3 100644 --- a/linux/atlassian/fisheye-crucible/1/1.5/.env +++ b/linux/atlassian/fisheye-crucible/1/1.5/.env @@ -1,3 +1,3 @@ RELEASE=1.5 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.5.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0/.env b/linux/atlassian/fisheye-crucible/1/1.6.0/.env index da149cae5..ed3a4ed14 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.0/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.0/.env @@ -1,3 +1,3 @@ RELEASE=1.6.0 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.0.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.0.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/.env b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/.env index 07ec71ef9..1ba71cecd 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/.env @@ -1,3 +1,3 @@ RELEASE=1.6.0Beta1 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.0.beta1.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.0.beta1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/.env b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/.env index 5e27753f8..3823a8340 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/.env @@ -1,3 +1,3 @@ RELEASE=1.6.0Beta2 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.0.beta2.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.0.beta2.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.1/.env b/linux/atlassian/fisheye-crucible/1/1.6.1/.env index c2bff741b..fda976f9b 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.1/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.1/.env @@ -1,3 +1,3 @@ RELEASE=1.6.1 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.1.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.2.1/.env b/linux/atlassian/fisheye-crucible/1/1.6.2.1/.env deleted file mode 100644 index cad3b7d01..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.2.1/.env +++ /dev/null @@ -1,3 +0,0 @@ - -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/atlassian/fisheye-crucible/1/1.6.2/.env b/linux/atlassian/fisheye-crucible/1/1.6.2/.env deleted file mode 100644 index 8f98dad06..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.2/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.2 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.2.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.2/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.2/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.2/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.2/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.2/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.2/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.3/.env b/linux/atlassian/fisheye-crucible/1/1.6.3/.env index fad673518..5af72704f 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.3/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.3/.env @@ -1,3 +1,3 @@ RELEASE=1.6.3 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.3.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.3.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.4/.env b/linux/atlassian/fisheye-crucible/1/1.6.4/.env index ad8e970fa..fcb63d5f1 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.4/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.4/.env @@ -1,3 +1,3 @@ RELEASE=1.6.4 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.4.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.4.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5.a/.env b/linux/atlassian/fisheye-crucible/1/1.6.5.a/.env index c628ed5de..8f5135811 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.5.a/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.5.a/.env @@ -1,3 +1,3 @@ RELEASE=1.6.5.a -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.5.a.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.5.a.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5/.env b/linux/atlassian/fisheye-crucible/1/1.6.5/.env index 43a8e7576..1adbea3a2 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.5/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.5/.env @@ -1,3 +1,3 @@ RELEASE=1.6.5 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.5.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.5.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5a/.env b/linux/atlassian/fisheye-crucible/1/1.6.5a/.env index 6070c5b66..d857ee4cb 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.5a/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.5a/.env @@ -1,3 +1,3 @@ RELEASE=1.6.5a -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.5a.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.5a.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.6/.env b/linux/atlassian/fisheye-crucible/1/1.6.6/.env index dd85e3c14..f68a90347 100644 --- a/linux/atlassian/fisheye-crucible/1/1.6.6/.env +++ b/linux/atlassian/fisheye-crucible/1/1.6.6/.env @@ -1,3 +1,3 @@ RELEASE=1.6.6 -DOWNLOAD_URL=https://www.atlassian.com/software/crucible/downloads/binary/crucible-1.6.6.zip +DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.6.zip From 18058f2dcea1f99d14e697486914930b66bac8bb Mon Sep 17 00:00:00 2001 From: Odmin Date: Wed, 19 May 2021 15:41:26 +0300 Subject: [PATCH 026/144] chmox +x for *.sh --- linux/atlassian/fisheye-crucible/1/1.0.1a/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/1/1.4/entrypoint.sh | 0 12 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.0.1a/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/1/1.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.0.1a/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.0.1a/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/1/1.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4/entrypoint.sh old mode 100644 new mode 100755 From bc9140cbf49f79939aca4455b26b21c56499c5a9 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 15:46:35 +0300 Subject: [PATCH 027/144] cleanup --- .../data/crucible/templates/1}/Dockerfile | 14 +++--- .../templates/1/Makefile | 0 .../crucible/templates/1}/docker-compose.yml | 2 +- .../templates/1/entrypoint.sh | 0 .../templates/1/Dockerfile | 8 +-- .../dotnet/data/fisheye/templates/1}/Makefile | 0 .../templates/1/docker-compose.yml | 2 +- .../data/fisheye/templates/1}/entrypoint.sh | 0 .../atlassian/fisheye-crucible/1/1.0.1a/.env | 3 -- .../fisheye-crucible/1/1.0.1a/Dockerfile | 49 ------------------- linux/atlassian/fisheye-crucible/1/1.1.3/.env | 3 -- .../fisheye-crucible/1/1.1.3/Makefile | 5 -- .../1/1.1.3/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.1.3/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.2.5/.env | 3 -- .../fisheye-crucible/1/1.2.5/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.2.5/Makefile | 5 -- .../1/1.2.5/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.2.5/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.3.3/.env | 3 -- .../fisheye-crucible/1/1.3.3/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.3.3/Makefile | 5 -- .../1/1.3.3/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.3.3/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.3.4/.env | 3 -- .../fisheye-crucible/1/1.3.4/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.3.4/Makefile | 5 -- .../1/1.3.4/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.3.4/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.3.5/.env | 3 -- .../fisheye-crucible/1/1.3.5/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.3.5/Makefile | 5 -- .../1/1.3.5/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.3.5/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.3.6/.env | 3 -- .../fisheye-crucible/1/1.3.6/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.3.6/Makefile | 5 -- .../1/1.3.6/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.3.6/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.3.7/.env | 3 -- .../fisheye-crucible/1/1.3.7/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.3.7/Makefile | 5 -- .../1/1.3.7/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.3.7/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.3.8/.env | 3 -- .../fisheye-crucible/1/1.3.8/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.3.8/Makefile | 5 -- .../1/1.3.8/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.3.8/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.4.1/.env | 3 -- .../fisheye-crucible/1/1.4.1/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.4.1/Makefile | 5 -- .../1/1.4.1/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.4.1/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.4.2/.env | 3 -- .../fisheye-crucible/1/1.4.2/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.4.2/Makefile | 5 -- .../1/1.4.2/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.4.2/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.4.3/.env | 3 -- .../fisheye-crucible/1/1.4.3/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.4.3/Makefile | 5 -- .../1/1.4.3/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.4.3/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.4/.env | 3 -- .../fisheye-crucible/1/1.4/Dockerfile | 49 ------------------- .../atlassian/fisheye-crucible/1/1.4/Makefile | 5 -- .../fisheye-crucible/1/1.4/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.4/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.5.1/.env | 3 -- .../fisheye-crucible/1/1.5.1/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.5.1/Makefile | 5 -- .../1/1.5.1/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.5.1/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.5.2/.env | 3 -- .../fisheye-crucible/1/1.5.2/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.5.2/Makefile | 5 -- .../1/1.5.2/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.5.2/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.5.3/.env | 3 -- .../fisheye-crucible/1/1.5.3/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.5.3/Makefile | 5 -- .../1/1.5.3/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.5.3/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.5.4/.env | 3 -- .../fisheye-crucible/1/1.5.4/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.5.4/Makefile | 5 -- .../1/1.5.4/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.5.4/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.5/.env | 3 -- .../fisheye-crucible/1/1.5/Dockerfile | 49 ------------------- .../atlassian/fisheye-crucible/1/1.5/Makefile | 5 -- .../fisheye-crucible/1/1.5/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.5/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.6.0/.env | 3 -- .../fisheye-crucible/1/1.6.0/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.0/Makefile | 5 -- .../1/1.6.0/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.6.0/entrypoint.sh | 33 ------------- .../fisheye-crucible/1/1.6.0Beta1/.env | 3 -- .../fisheye-crucible/1/1.6.0Beta1/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.0Beta1/Makefile | 5 -- .../1/1.6.0Beta1/docker-compose.yml | 9 ---- .../1/1.6.0Beta1/entrypoint.sh | 33 ------------- .../fisheye-crucible/1/1.6.0Beta2/.env | 3 -- .../fisheye-crucible/1/1.6.0Beta2/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.0Beta2/Makefile | 5 -- .../1/1.6.0Beta2/docker-compose.yml | 9 ---- .../1/1.6.0Beta2/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.6.1/.env | 3 -- .../fisheye-crucible/1/1.6.1/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.1/Makefile | 5 -- .../1/1.6.1/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.6.1/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.6.3/.env | 3 -- .../fisheye-crucible/1/1.6.3/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.3/Makefile | 5 -- .../1/1.6.3/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.6.3/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.6.4/.env | 3 -- .../fisheye-crucible/1/1.6.4/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.4/Makefile | 5 -- .../1/1.6.4/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.6.4/entrypoint.sh | 33 ------------- .../atlassian/fisheye-crucible/1/1.6.5.a/.env | 3 -- .../fisheye-crucible/1/1.6.5.a/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.5.a/Makefile | 5 -- .../1/1.6.5.a/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.6.5.a/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.6.5/.env | 3 -- .../fisheye-crucible/1/1.6.5/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.5/Makefile | 5 -- .../1/1.6.5/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.6.5/entrypoint.sh | 33 ------------- .../atlassian/fisheye-crucible/1/1.6.5a/.env | 3 -- .../fisheye-crucible/1/1.6.5a/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.5a/Makefile | 5 -- .../1/1.6.5a/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.6.5a/entrypoint.sh | 33 ------------- linux/atlassian/fisheye-crucible/1/1.6.6/.env | 3 -- .../fisheye-crucible/1/1.6.6/Dockerfile | 49 ------------------- .../fisheye-crucible/1/1.6.6/Makefile | 5 -- .../1/1.6.6/docker-compose.yml | 9 ---- .../fisheye-crucible/1/1.6.6/entrypoint.sh | 33 ------------- 144 files changed, 13 insertions(+), 2689 deletions(-) rename {linux/atlassian/fisheye-crucible/1/1.1.3 => bin/dotnet/data/crucible/templates/1}/Dockerfile (77%) rename bin/dotnet/data/{fisheye-crucible => crucible}/templates/1/Makefile (100%) rename {linux/atlassian/fisheye-crucible/1/1.0.1a => bin/dotnet/data/crucible/templates/1}/docker-compose.yml (73%) rename bin/dotnet/data/{fisheye-crucible => crucible}/templates/1/entrypoint.sh (100%) mode change 100755 => 100644 rename bin/dotnet/data/{fisheye-crucible => fisheye}/templates/1/Dockerfile (88%) rename {linux/atlassian/fisheye-crucible/1/1.0.1a => bin/dotnet/data/fisheye/templates/1}/Makefile (100%) rename bin/dotnet/data/{fisheye-crucible => fisheye}/templates/1/docker-compose.yml (73%) rename {linux/atlassian/fisheye-crucible/1/1.0.1a => bin/dotnet/data/fisheye/templates/1}/entrypoint.sh (100%) delete mode 100644 linux/atlassian/fisheye-crucible/1/1.0.1a/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.0.1a/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.1.3/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.1.3/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.1.3/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.2.5/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.2.5/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.2.5/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.2.5/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.3/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.3/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.3/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.3/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.4/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.4/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.4/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.4/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.5/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.5/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.5/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.5/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.6/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.6/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.6/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.6/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.7/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.7/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.7/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.7/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.8/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.8/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.8/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.8/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.1/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.1/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.1/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.1/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.2/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.2/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.2/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.2/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.3/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.3/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.3/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.3/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4/docker-compose.yml delete mode 100644 linux/atlassian/fisheye-crucible/1/1.4/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.1/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.1/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.1/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.1/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.2/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.2/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.2/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.2/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.3/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.3/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.3/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.3/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.4/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.4/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.4/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5.4/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.5/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.5/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.1/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.1/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.1/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.1/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.3/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.3/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.3/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.3/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.4/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.4/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.4/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.4/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5.a/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5.a/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5.a/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5.a/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5a/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5a/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5a/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.5a/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.6/.env delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.6/Dockerfile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.6/Makefile delete mode 100644 linux/atlassian/fisheye-crucible/1/1.6.6/docker-compose.yml delete mode 100755 linux/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.1.3/Dockerfile b/bin/dotnet/data/crucible/templates/1/Dockerfile similarity index 77% rename from linux/atlassian/fisheye-crucible/1/1.1.3/Dockerfile rename to bin/dotnet/data/crucible/templates/1/Dockerfile index 4eec725a4..3efd74f1a 100644 --- a/linux/atlassian/fisheye-crucible/1/1.1.3/Dockerfile +++ b/bin/dotnet/data/crucible/templates/1/Dockerfile @@ -16,8 +16,8 @@ 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 +ENV FISHEYE_HOME /opt/atlassian/crucible +ENV FISHEYE_INST /var/atlassian/application-data/crucible VOLUME ["${FISHEYE_INST}"] WORKDIR $FISHEYE_INST @@ -29,16 +29,16 @@ 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} \ + && 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/fisheye-${RELEASE}.zip \ - && rm -rfv /tmp/fecru-${RELEASE} \ + && rm -rfv /tmp/crucible-${RELEASE}.zip \ + && rm -rfv /tmp/crucible-${RELEASE} \ && rm -rfv /var/lib/apt/lists/* \ && rm -rfv /var/cache/apt/archives/*.deb diff --git a/bin/dotnet/data/fisheye-crucible/templates/1/Makefile b/bin/dotnet/data/crucible/templates/1/Makefile similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/1/Makefile rename to bin/dotnet/data/crucible/templates/1/Makefile diff --git a/linux/atlassian/fisheye-crucible/1/1.0.1a/docker-compose.yml b/bin/dotnet/data/crucible/templates/1/docker-compose.yml similarity index 73% rename from linux/atlassian/fisheye-crucible/1/1.0.1a/docker-compose.yml rename to bin/dotnet/data/crucible/templates/1/docker-compose.yml index fba8ce85f..127b0dd9a 100644 --- a/linux/atlassian/fisheye-crucible/1/1.0.1a/docker-compose.yml +++ b/bin/dotnet/data/crucible/templates/1/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.9' services: app: - image: "epicmorg/fisheye-crucible:${RELEASE}" + image: "epicmorg/crucible:${RELEASE}" build: context: . args: diff --git a/bin/dotnet/data/fisheye-crucible/templates/1/entrypoint.sh b/bin/dotnet/data/crucible/templates/1/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/1/entrypoint.sh rename to bin/dotnet/data/crucible/templates/1/entrypoint.sh diff --git a/bin/dotnet/data/fisheye-crucible/templates/1/Dockerfile b/bin/dotnet/data/fisheye/templates/1/Dockerfile similarity index 88% rename from bin/dotnet/data/fisheye-crucible/templates/1/Dockerfile rename to bin/dotnet/data/fisheye/templates/1/Dockerfile index 4eec725a4..426636d79 100644 --- a/bin/dotnet/data/fisheye-crucible/templates/1/Dockerfile +++ b/bin/dotnet/data/fisheye/templates/1/Dockerfile @@ -16,8 +16,8 @@ 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 +ENV FISHEYE_HOME /opt/atlassian/fisheye +ENV FISHEYE_INST /var/atlassian/application-data/fisheye VOLUME ["${FISHEYE_INST}"] WORKDIR $FISHEYE_INST @@ -31,14 +31,14 @@ EXPOSE 8060 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} \ + && 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/fecru-${RELEASE} \ + && rm -rfv /tmp/fisheye-${RELEASE} \ && rm -rfv /var/lib/apt/lists/* \ && rm -rfv /var/cache/apt/archives/*.deb diff --git a/linux/atlassian/fisheye-crucible/1/1.0.1a/Makefile b/bin/dotnet/data/fisheye/templates/1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.1a/Makefile rename to bin/dotnet/data/fisheye/templates/1/Makefile diff --git a/bin/dotnet/data/fisheye-crucible/templates/1/docker-compose.yml b/bin/dotnet/data/fisheye/templates/1/docker-compose.yml similarity index 73% rename from bin/dotnet/data/fisheye-crucible/templates/1/docker-compose.yml rename to bin/dotnet/data/fisheye/templates/1/docker-compose.yml index fba8ce85f..a49525ebf 100644 --- a/bin/dotnet/data/fisheye-crucible/templates/1/docker-compose.yml +++ b/bin/dotnet/data/fisheye/templates/1/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.9' services: app: - image: "epicmorg/fisheye-crucible:${RELEASE}" + image: "epicmorg/fisheye:${RELEASE}" build: context: . args: diff --git a/linux/atlassian/fisheye-crucible/1/1.0.1a/entrypoint.sh b/bin/dotnet/data/fisheye/templates/1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/1/1.0.1a/entrypoint.sh rename to bin/dotnet/data/fisheye/templates/1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/1/1.0.1a/.env b/linux/atlassian/fisheye-crucible/1/1.0.1a/.env deleted file mode 100644 index 09774c7f1..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.0.1a/.env +++ /dev/null @@ -1,3 +0,0 @@ - -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/atlassian/fisheye-crucible/1/1.0.1a/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.0.1a/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.0.1a/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.1.3/.env b/linux/atlassian/fisheye-crucible/1/1.1.3/.env deleted file mode 100644 index d77c95411..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.1.3/.env +++ /dev/null @@ -1,3 +0,0 @@ - -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/atlassian/fisheye-crucible/1/1.1.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.1.3/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.1.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.1.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.1.3/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.1.3/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.1.3/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.2.5/.env b/linux/atlassian/fisheye-crucible/1/1.2.5/.env deleted file mode 100644 index fc6a9304c..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.2.5/.env +++ /dev/null @@ -1,3 +0,0 @@ - -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/atlassian/fisheye-crucible/1/1.2.5/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.2.5/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.2.5/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.2.5/Makefile b/linux/atlassian/fisheye-crucible/1/1.2.5/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.2.5/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.2.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.2.5/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.2.5/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.2.5/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.3.3/.env b/linux/atlassian/fisheye-crucible/1/1.3.3/.env deleted file mode 100644 index c207ee032..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.3/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.3.3 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.3.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.3.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.3/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.3/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.3/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.3.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.3/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.3/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.3/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.3.4/.env b/linux/atlassian/fisheye-crucible/1/1.3.4/.env deleted file mode 100644 index ad0a606c4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.4/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.3.4 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.4.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.3.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.4/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.4/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.4/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.3.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.4/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.4/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.4/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.3.5/.env b/linux/atlassian/fisheye-crucible/1/1.3.5/.env deleted file mode 100644 index 0331f045c..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.5/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.3.5 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.5.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.3.5/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.5/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.5/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.5/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.5/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.5/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.3.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.5/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.5/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.5/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.3.6/.env b/linux/atlassian/fisheye-crucible/1/1.3.6/.env deleted file mode 100644 index a3ecceee1..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.6/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.3.6 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.6.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.3.6/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.6/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.6/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.6/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.6/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.6/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.3.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.6/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.6/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.6/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.3.7/.env b/linux/atlassian/fisheye-crucible/1/1.3.7/.env deleted file mode 100644 index a78be37ed..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.7/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.3.7 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.7.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.3.7/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.7/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.7/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.7/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.7/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.7/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.3.7/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.7/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.7/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.7/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.3.8/.env b/linux/atlassian/fisheye-crucible/1/1.3.8/.env deleted file mode 100644 index 9070c45a9..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.8/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.3.8 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.3.8.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.3.8/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.3.8/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.8/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.8/Makefile b/linux/atlassian/fisheye-crucible/1/1.3.8/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.8/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.3.8/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.3.8/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.8/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.3.8/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.4.1/.env b/linux/atlassian/fisheye-crucible/1/1.4.1/.env deleted file mode 100644 index 59788e4b0..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.1/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.4.1 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.4.1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.4.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.4.1/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.1/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.4.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.4.1/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.4.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.4.1/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.1/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.1/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.4.2/.env b/linux/atlassian/fisheye-crucible/1/1.4.2/.env deleted file mode 100644 index b23287179..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.2/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.4.2 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.4.2.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.4.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.4.2/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.2/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.4.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.4.2/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.4.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.4.2/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.2/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.2/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.4.3/.env b/linux/atlassian/fisheye-crucible/1/1.4.3/.env deleted file mode 100644 index 66a7ab561..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.3/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.4.3 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.4.3.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.4.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.4.3/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.3/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.4.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.4.3/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.4.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.4.3/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.3/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4.3/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.4/.env b/linux/atlassian/fisheye-crucible/1/1.4/.env deleted file mode 100644 index faf2bd26a..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.4 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.4.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.4/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.4/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.4/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.4/entrypoint.sh deleted file mode 100644 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.4/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.5.1/.env b/linux/atlassian/fisheye-crucible/1/1.5.1/.env deleted file mode 100644 index 67893f9f5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.1/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.5.1 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.5.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5.1/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.1/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.5.1/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5.1/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.1/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.1/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.5.2/.env b/linux/atlassian/fisheye-crucible/1/1.5.2/.env deleted file mode 100644 index be267994e..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.2/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.5.2 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.2.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.5.2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5.2/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.2/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5.2/Makefile b/linux/atlassian/fisheye-crucible/1/1.5.2/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5.2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5.2/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.2/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.2/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.5.3/.env b/linux/atlassian/fisheye-crucible/1/1.5.3/.env deleted file mode 100644 index 15528b579..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.3/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.5.3 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.3.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.5.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5.3/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.3/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.5.3/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5.3/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.3/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.3/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.5.4/.env b/linux/atlassian/fisheye-crucible/1/1.5.4/.env deleted file mode 100644 index 8e56c6a61..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.4/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.5.4 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.4.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.5.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5.4/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.4/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.5.4/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5.4/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.4/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5.4/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.5/.env b/linux/atlassian/fisheye-crucible/1/1.5/.env deleted file mode 100644 index 89f754df3..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.5 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.5.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.5/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.5/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5/Makefile b/linux/atlassian/fisheye-crucible/1/1.5/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.5/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.5/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.5/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.0/.env b/linux/atlassian/fisheye-crucible/1/1.6.0/.env deleted file mode 100644 index ed3a4ed14..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.0 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.0.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.0/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.0/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.0/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.0/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.0Beta1/.env b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/.env deleted file mode 100644 index 1ba71cecd..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.0Beta1 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.0.beta1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.0Beta1/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta1/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.0Beta2/.env b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/.env deleted file mode 100644 index 3823a8340..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.0Beta2 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.0.beta2.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.0Beta2/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.0Beta2/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.1/.env b/linux/atlassian/fisheye-crucible/1/1.6.1/.env deleted file mode 100644 index fda976f9b..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.1/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.1 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.1.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.1/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.1/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.1/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.1/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.1/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.1/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.1/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.1/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.1/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.1/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.3/.env b/linux/atlassian/fisheye-crucible/1/1.6.3/.env deleted file mode 100644 index 5af72704f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.3/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.3 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.3.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.3/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.3/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.3/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.3/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.3/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.3/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.3/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.3/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.3/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.3/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.4/.env b/linux/atlassian/fisheye-crucible/1/1.6.4/.env deleted file mode 100644 index fcb63d5f1..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.4/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.4 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.4.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.4/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.4/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.4/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.4/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.4/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.4/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.4/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.4/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.4/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.4/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.5.a/.env b/linux/atlassian/fisheye-crucible/1/1.6.5.a/.env deleted file mode 100644 index 8f5135811..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5.a/.env +++ /dev/null @@ -1,3 +0,0 @@ - -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/atlassian/fisheye-crucible/1/1.6.5.a/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.5.a/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5.a/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.5.a/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.5.a/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5.a/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5.a/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.5.a/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5.a/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5.a/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.5/.env b/linux/atlassian/fisheye-crucible/1/1.6.5/.env deleted file mode 100644 index 1adbea3a2..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.5 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.5.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.5/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.5/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.5/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.5/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.5a/.env b/linux/atlassian/fisheye-crucible/1/1.6.5a/.env deleted file mode 100644 index d857ee4cb..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5a/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.5a -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.5a.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5a/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.5a/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5a/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.5a/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.5a/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5a/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.5a/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.5a/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5a/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.5a/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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/atlassian/fisheye-crucible/1/1.6.6/.env b/linux/atlassian/fisheye-crucible/1/1.6.6/.env deleted file mode 100644 index f68a90347..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.6/.env +++ /dev/null @@ -1,3 +0,0 @@ - -RELEASE=1.6.6 -DOWNLOAD_URL=https://www.atlassian.com/software/fisheye/downloads/binary/fisheye-1.6.6.zip diff --git a/linux/atlassian/fisheye-crucible/1/1.6.6/Dockerfile b/linux/atlassian/fisheye-crucible/1/1.6.6/Dockerfile deleted file mode 100644 index 4eec725a4..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.6/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.6/Makefile b/linux/atlassian/fisheye-crucible/1/1.6.6/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.6/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/atlassian/fisheye-crucible/1/1.6.6/docker-compose.yml b/linux/atlassian/fisheye-crucible/1/1.6.6/docker-compose.yml deleted file mode 100644 index fba8ce85f..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.6/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh b/linux/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh deleted file mode 100755 index 5559ebcb5..000000000 --- a/linux/atlassian/fisheye-crucible/1/1.6.6/entrypoint.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/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 From ff0ab2b21a6c0551b0d45a46abe25fc854008eb0 Mon Sep 17 00:00:00 2001 From: Odmin Date: Wed, 19 May 2021 15:48:20 +0300 Subject: [PATCH 028/144] chmox +x for *.sh --- bin/dotnet/data/crucible/templates/1/entrypoint.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 bin/dotnet/data/crucible/templates/1/entrypoint.sh diff --git a/bin/dotnet/data/crucible/templates/1/entrypoint.sh b/bin/dotnet/data/crucible/templates/1/entrypoint.sh old mode 100644 new mode 100755 From 9848cea1da0fbf8422b1c5c53606f1e2f89c8e68 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 15:52:17 +0300 Subject: [PATCH 029/144] fe + cr with separated v1 --- linux/atlassian/crucible/1/1.0.3/.env | 3 ++ linux/atlassian/crucible/1/1.0.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.0.3/Makefile | 5 ++ .../crucible/1/1.0.3/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.0.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.0.4/.env | 3 ++ linux/atlassian/crucible/1/1.0.4/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.0.4/Makefile | 5 ++ .../crucible/1/1.0.4/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.0.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.0/.env | 3 ++ linux/atlassian/crucible/1/1.0/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.0/Makefile | 5 ++ .../crucible/1/1.0/docker-compose.yml | 9 ++++ linux/atlassian/crucible/1/1.0/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.1.1/.env | 3 ++ linux/atlassian/crucible/1/1.1.1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.1.1/Makefile | 5 ++ .../crucible/1/1.1.1/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.1.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.1.2/.env | 3 ++ linux/atlassian/crucible/1/1.1.2/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.1.2/Makefile | 5 ++ .../crucible/1/1.1.2/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.1.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.1.3/.env | 3 ++ linux/atlassian/crucible/1/1.1.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.1.3/Makefile | 5 ++ .../crucible/1/1.1.3/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.1.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.1.4/.env | 3 ++ linux/atlassian/crucible/1/1.1.4/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.1.4/Makefile | 5 ++ .../crucible/1/1.1.4/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.1.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.1/.env | 3 ++ linux/atlassian/crucible/1/1.1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.1/Makefile | 5 ++ .../crucible/1/1.1/docker-compose.yml | 9 ++++ linux/atlassian/crucible/1/1.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.2.1/.env | 3 ++ linux/atlassian/crucible/1/1.2.1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.2.1/Makefile | 5 ++ .../crucible/1/1.2.1/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.2.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.2.2/.env | 3 ++ linux/atlassian/crucible/1/1.2.2/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.2.2/Makefile | 5 ++ .../crucible/1/1.2.2/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.2.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.2.3/.env | 3 ++ linux/atlassian/crucible/1/1.2.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.2.3/Makefile | 5 ++ .../crucible/1/1.2.3/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.2.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.2/.env | 3 ++ linux/atlassian/crucible/1/1.2/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.2/Makefile | 5 ++ .../crucible/1/1.2/docker-compose.yml | 9 ++++ linux/atlassian/crucible/1/1.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.5.1/.env | 3 ++ linux/atlassian/crucible/1/1.5.1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.5.1/Makefile | 5 ++ .../crucible/1/1.5.1/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.5.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.5.2/.env | 3 ++ linux/atlassian/crucible/1/1.5.2/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.5.2/Makefile | 5 ++ .../crucible/1/1.5.2/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.5.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.5.3/.env | 3 ++ linux/atlassian/crucible/1/1.5.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.5.3/Makefile | 5 ++ .../crucible/1/1.5.3/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.5.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.5.4/.env | 3 ++ linux/atlassian/crucible/1/1.5.4/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.5.4/Makefile | 5 ++ .../crucible/1/1.5.4/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.5.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.5/.env | 3 ++ linux/atlassian/crucible/1/1.5/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.5/Makefile | 5 ++ .../crucible/1/1.5/docker-compose.yml | 9 ++++ linux/atlassian/crucible/1/1.5/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.0/.env | 3 ++ linux/atlassian/crucible/1/1.6.0/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.0/Makefile | 5 ++ .../crucible/1/1.6.0/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.6.0/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.0Beta1/.env | 3 ++ .../crucible/1/1.6.0Beta1/Dockerfile | 49 +++++++++++++++++++ .../atlassian/crucible/1/1.6.0Beta1/Makefile | 5 ++ .../crucible/1/1.6.0Beta1/docker-compose.yml | 9 ++++ .../crucible/1/1.6.0Beta1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.0Beta2/.env | 3 ++ .../crucible/1/1.6.0Beta2/Dockerfile | 49 +++++++++++++++++++ .../atlassian/crucible/1/1.6.0Beta2/Makefile | 5 ++ .../crucible/1/1.6.0Beta2/docker-compose.yml | 9 ++++ .../crucible/1/1.6.0Beta2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.1/.env | 3 ++ linux/atlassian/crucible/1/1.6.1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.1/Makefile | 5 ++ .../crucible/1/1.6.1/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.6.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.2.1/.env | 3 ++ linux/atlassian/crucible/1/1.6.2.1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.2.1/Makefile | 5 ++ .../crucible/1/1.6.2.1/docker-compose.yml | 9 ++++ .../crucible/1/1.6.2.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.2/.env | 3 ++ linux/atlassian/crucible/1/1.6.2/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.2/Makefile | 5 ++ .../crucible/1/1.6.2/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.6.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.3/.env | 3 ++ linux/atlassian/crucible/1/1.6.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.3/Makefile | 5 ++ .../crucible/1/1.6.3/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.6.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.4/.env | 3 ++ linux/atlassian/crucible/1/1.6.4/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.4/Makefile | 5 ++ .../crucible/1/1.6.4/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.6.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.5.a/.env | 3 ++ linux/atlassian/crucible/1/1.6.5.a/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.5.a/Makefile | 5 ++ .../crucible/1/1.6.5.a/docker-compose.yml | 9 ++++ .../crucible/1/1.6.5.a/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.5/.env | 3 ++ linux/atlassian/crucible/1/1.6.5/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.5/Makefile | 5 ++ .../crucible/1/1.6.5/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.6.5/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.5a/.env | 3 ++ linux/atlassian/crucible/1/1.6.5a/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.5a/Makefile | 5 ++ .../crucible/1/1.6.5a/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.6.5a/entrypoint.sh | 33 +++++++++++++ linux/atlassian/crucible/1/1.6.6/.env | 3 ++ linux/atlassian/crucible/1/1.6.6/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/crucible/1/1.6.6/Makefile | 5 ++ .../crucible/1/1.6.6/docker-compose.yml | 9 ++++ .../atlassian/crucible/1/1.6.6/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.0.1a/.env | 3 ++ linux/atlassian/fisheye/1/1.0.1a/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.0.1a/Makefile | 5 ++ .../fisheye/1/1.0.1a/docker-compose.yml | 9 ++++ .../atlassian/fisheye/1/1.0.1a/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.1.3/.env | 3 ++ linux/atlassian/fisheye/1/1.1.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.1.3/Makefile | 5 ++ .../fisheye/1/1.1.3/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.1.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.2.5/.env | 3 ++ linux/atlassian/fisheye/1/1.2.5/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.2.5/Makefile | 5 ++ .../fisheye/1/1.2.5/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.2.5/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.3.3/.env | 3 ++ linux/atlassian/fisheye/1/1.3.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.3.3/Makefile | 5 ++ .../fisheye/1/1.3.3/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.3.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.3.4/.env | 3 ++ linux/atlassian/fisheye/1/1.3.4/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.3.4/Makefile | 5 ++ .../fisheye/1/1.3.4/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.3.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.3.5/.env | 3 ++ linux/atlassian/fisheye/1/1.3.5/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.3.5/Makefile | 5 ++ .../fisheye/1/1.3.5/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.3.5/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.3.6/.env | 3 ++ linux/atlassian/fisheye/1/1.3.6/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.3.6/Makefile | 5 ++ .../fisheye/1/1.3.6/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.3.6/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.3.7/.env | 3 ++ linux/atlassian/fisheye/1/1.3.7/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.3.7/Makefile | 5 ++ .../fisheye/1/1.3.7/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.3.7/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.3.8/.env | 3 ++ linux/atlassian/fisheye/1/1.3.8/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.3.8/Makefile | 5 ++ .../fisheye/1/1.3.8/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.3.8/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.4.1/.env | 3 ++ linux/atlassian/fisheye/1/1.4.1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.4.1/Makefile | 5 ++ .../fisheye/1/1.4.1/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.4.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.4.2/.env | 3 ++ linux/atlassian/fisheye/1/1.4.2/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.4.2/Makefile | 5 ++ .../fisheye/1/1.4.2/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.4.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.4.3/.env | 3 ++ linux/atlassian/fisheye/1/1.4.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.4.3/Makefile | 5 ++ .../fisheye/1/1.4.3/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.4.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.4/.env | 3 ++ linux/atlassian/fisheye/1/1.4/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.4/Makefile | 5 ++ .../fisheye/1/1.4/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.5.1/.env | 3 ++ linux/atlassian/fisheye/1/1.5.1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.5.1/Makefile | 5 ++ .../fisheye/1/1.5.1/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.5.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.5.2/.env | 3 ++ linux/atlassian/fisheye/1/1.5.2/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.5.2/Makefile | 5 ++ .../fisheye/1/1.5.2/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.5.2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.5.3/.env | 3 ++ linux/atlassian/fisheye/1/1.5.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.5.3/Makefile | 5 ++ .../fisheye/1/1.5.3/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.5.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.5.4/.env | 3 ++ linux/atlassian/fisheye/1/1.5.4/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.5.4/Makefile | 5 ++ .../fisheye/1/1.5.4/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.5.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.5/.env | 3 ++ linux/atlassian/fisheye/1/1.5/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.5/Makefile | 5 ++ .../fisheye/1/1.5/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.5/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.0/.env | 3 ++ linux/atlassian/fisheye/1/1.6.0/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.0/Makefile | 5 ++ .../fisheye/1/1.6.0/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.6.0/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.0Beta1/.env | 3 ++ .../atlassian/fisheye/1/1.6.0Beta1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.0Beta1/Makefile | 5 ++ .../fisheye/1/1.6.0Beta1/docker-compose.yml | 9 ++++ .../fisheye/1/1.6.0Beta1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.0Beta2/.env | 3 ++ .../atlassian/fisheye/1/1.6.0Beta2/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.0Beta2/Makefile | 5 ++ .../fisheye/1/1.6.0Beta2/docker-compose.yml | 9 ++++ .../fisheye/1/1.6.0Beta2/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.1/.env | 3 ++ linux/atlassian/fisheye/1/1.6.1/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.1/Makefile | 5 ++ .../fisheye/1/1.6.1/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.6.1/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.3/.env | 3 ++ linux/atlassian/fisheye/1/1.6.3/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.3/Makefile | 5 ++ .../fisheye/1/1.6.3/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.6.3/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.4/.env | 3 ++ linux/atlassian/fisheye/1/1.6.4/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.4/Makefile | 5 ++ .../fisheye/1/1.6.4/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.6.4/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.5.a/.env | 3 ++ linux/atlassian/fisheye/1/1.6.5.a/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.5.a/Makefile | 5 ++ .../fisheye/1/1.6.5.a/docker-compose.yml | 9 ++++ .../atlassian/fisheye/1/1.6.5.a/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.5/.env | 3 ++ linux/atlassian/fisheye/1/1.6.5/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.5/Makefile | 5 ++ .../fisheye/1/1.6.5/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.6.5/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.5a/.env | 3 ++ linux/atlassian/fisheye/1/1.6.5a/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.5a/Makefile | 5 ++ .../fisheye/1/1.6.5a/docker-compose.yml | 9 ++++ .../atlassian/fisheye/1/1.6.5a/entrypoint.sh | 33 +++++++++++++ linux/atlassian/fisheye/1/1.6.6/.env | 3 ++ linux/atlassian/fisheye/1/1.6.6/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/fisheye/1/1.6.6/Makefile | 5 ++ .../fisheye/1/1.6.6/docker-compose.yml | 9 ++++ linux/atlassian/fisheye/1/1.6.6/entrypoint.sh | 33 +++++++++++++ 285 files changed, 5643 insertions(+) create mode 100644 linux/atlassian/crucible/1/1.0.3/.env create mode 100644 linux/atlassian/crucible/1/1.0.3/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.0.3/Makefile create mode 100644 linux/atlassian/crucible/1/1.0.3/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.0.3/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.0.4/.env create mode 100644 linux/atlassian/crucible/1/1.0.4/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.0.4/Makefile create mode 100644 linux/atlassian/crucible/1/1.0.4/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.0.4/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.0/.env create mode 100644 linux/atlassian/crucible/1/1.0/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.0/Makefile create mode 100644 linux/atlassian/crucible/1/1.0/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.0/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.1.1/.env create mode 100644 linux/atlassian/crucible/1/1.1.1/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.1.1/Makefile create mode 100644 linux/atlassian/crucible/1/1.1.1/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.1.1/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.1.2/.env create mode 100644 linux/atlassian/crucible/1/1.1.2/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.1.2/Makefile create mode 100644 linux/atlassian/crucible/1/1.1.2/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.1.2/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.1.3/.env create mode 100644 linux/atlassian/crucible/1/1.1.3/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.1.3/Makefile create mode 100644 linux/atlassian/crucible/1/1.1.3/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.1.3/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.1.4/.env create mode 100644 linux/atlassian/crucible/1/1.1.4/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.1.4/Makefile create mode 100644 linux/atlassian/crucible/1/1.1.4/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.1.4/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.1/.env create mode 100644 linux/atlassian/crucible/1/1.1/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.1/Makefile create mode 100644 linux/atlassian/crucible/1/1.1/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.1/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.2.1/.env create mode 100644 linux/atlassian/crucible/1/1.2.1/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.2.1/Makefile create mode 100644 linux/atlassian/crucible/1/1.2.1/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.2.1/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.2.2/.env create mode 100644 linux/atlassian/crucible/1/1.2.2/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.2.2/Makefile create mode 100644 linux/atlassian/crucible/1/1.2.2/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.2.2/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.2.3/.env create mode 100644 linux/atlassian/crucible/1/1.2.3/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.2.3/Makefile create mode 100644 linux/atlassian/crucible/1/1.2.3/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.2.3/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.2/.env create mode 100644 linux/atlassian/crucible/1/1.2/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.2/Makefile create mode 100644 linux/atlassian/crucible/1/1.2/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.2/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.5.1/.env create mode 100644 linux/atlassian/crucible/1/1.5.1/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.5.1/Makefile create mode 100644 linux/atlassian/crucible/1/1.5.1/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.5.1/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.5.2/.env create mode 100644 linux/atlassian/crucible/1/1.5.2/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.5.2/Makefile create mode 100644 linux/atlassian/crucible/1/1.5.2/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.5.2/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.5.3/.env create mode 100644 linux/atlassian/crucible/1/1.5.3/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.5.3/Makefile create mode 100644 linux/atlassian/crucible/1/1.5.3/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.5.3/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.5.4/.env create mode 100644 linux/atlassian/crucible/1/1.5.4/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.5.4/Makefile create mode 100644 linux/atlassian/crucible/1/1.5.4/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.5.4/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.5/.env create mode 100644 linux/atlassian/crucible/1/1.5/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.5/Makefile create mode 100644 linux/atlassian/crucible/1/1.5/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.5/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.0/.env create mode 100644 linux/atlassian/crucible/1/1.6.0/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.0/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.0/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.0/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.0Beta1/.env create mode 100644 linux/atlassian/crucible/1/1.6.0Beta1/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.0Beta1/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.0Beta2/.env create mode 100644 linux/atlassian/crucible/1/1.6.0Beta2/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.0Beta2/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.1/.env create mode 100644 linux/atlassian/crucible/1/1.6.1/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.1/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.1/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.1/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.2.1/.env create mode 100644 linux/atlassian/crucible/1/1.6.2.1/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.2.1/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.2.1/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.2.1/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.2/.env create mode 100644 linux/atlassian/crucible/1/1.6.2/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.2/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.2/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.2/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.3/.env create mode 100644 linux/atlassian/crucible/1/1.6.3/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.3/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.3/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.3/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.4/.env create mode 100644 linux/atlassian/crucible/1/1.6.4/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.4/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.4/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.4/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.5.a/.env create mode 100644 linux/atlassian/crucible/1/1.6.5.a/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.5.a/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.5.a/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.5.a/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.5/.env create mode 100644 linux/atlassian/crucible/1/1.6.5/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.5/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.5/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.5/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.5a/.env create mode 100644 linux/atlassian/crucible/1/1.6.5a/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.5a/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.5a/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.5a/entrypoint.sh create mode 100644 linux/atlassian/crucible/1/1.6.6/.env create mode 100644 linux/atlassian/crucible/1/1.6.6/Dockerfile create mode 100644 linux/atlassian/crucible/1/1.6.6/Makefile create mode 100644 linux/atlassian/crucible/1/1.6.6/docker-compose.yml create mode 100644 linux/atlassian/crucible/1/1.6.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.0.1a/.env create mode 100644 linux/atlassian/fisheye/1/1.0.1a/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.0.1a/Makefile create mode 100644 linux/atlassian/fisheye/1/1.0.1a/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.0.1a/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.1.3/.env create mode 100644 linux/atlassian/fisheye/1/1.1.3/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.1.3/Makefile create mode 100644 linux/atlassian/fisheye/1/1.1.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.1.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.2.5/.env create mode 100644 linux/atlassian/fisheye/1/1.2.5/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.2.5/Makefile create mode 100644 linux/atlassian/fisheye/1/1.2.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.2.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.3.3/.env create mode 100644 linux/atlassian/fisheye/1/1.3.3/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.3.3/Makefile create mode 100644 linux/atlassian/fisheye/1/1.3.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.3.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.3.4/.env create mode 100644 linux/atlassian/fisheye/1/1.3.4/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.3.4/Makefile create mode 100644 linux/atlassian/fisheye/1/1.3.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.3.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.3.5/.env create mode 100644 linux/atlassian/fisheye/1/1.3.5/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.3.5/Makefile create mode 100644 linux/atlassian/fisheye/1/1.3.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.3.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.3.6/.env create mode 100644 linux/atlassian/fisheye/1/1.3.6/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.3.6/Makefile create mode 100644 linux/atlassian/fisheye/1/1.3.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.3.6/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.3.7/.env create mode 100644 linux/atlassian/fisheye/1/1.3.7/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.3.7/Makefile create mode 100644 linux/atlassian/fisheye/1/1.3.7/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.3.7/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.3.8/.env create mode 100644 linux/atlassian/fisheye/1/1.3.8/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.3.8/Makefile create mode 100644 linux/atlassian/fisheye/1/1.3.8/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.3.8/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.4.1/.env create mode 100644 linux/atlassian/fisheye/1/1.4.1/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.4.1/Makefile create mode 100644 linux/atlassian/fisheye/1/1.4.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.4.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.4.2/.env create mode 100644 linux/atlassian/fisheye/1/1.4.2/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.4.2/Makefile create mode 100644 linux/atlassian/fisheye/1/1.4.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.4.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.4.3/.env create mode 100644 linux/atlassian/fisheye/1/1.4.3/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.4.3/Makefile create mode 100644 linux/atlassian/fisheye/1/1.4.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.4.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.4/.env create mode 100644 linux/atlassian/fisheye/1/1.4/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.4/Makefile create mode 100644 linux/atlassian/fisheye/1/1.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.5.1/.env create mode 100644 linux/atlassian/fisheye/1/1.5.1/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.5.1/Makefile create mode 100644 linux/atlassian/fisheye/1/1.5.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.5.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.5.2/.env create mode 100644 linux/atlassian/fisheye/1/1.5.2/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.5.2/Makefile create mode 100644 linux/atlassian/fisheye/1/1.5.2/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.5.2/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.5.3/.env create mode 100644 linux/atlassian/fisheye/1/1.5.3/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.5.3/Makefile create mode 100644 linux/atlassian/fisheye/1/1.5.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.5.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.5.4/.env create mode 100644 linux/atlassian/fisheye/1/1.5.4/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.5.4/Makefile create mode 100644 linux/atlassian/fisheye/1/1.5.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.5.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.5/.env create mode 100644 linux/atlassian/fisheye/1/1.5/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.5/Makefile create mode 100644 linux/atlassian/fisheye/1/1.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.0/.env create mode 100644 linux/atlassian/fisheye/1/1.6.0/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.0/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.0/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.0/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta1/.env create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta1/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta1/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta2/.env create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta2/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta2/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.1/.env create mode 100644 linux/atlassian/fisheye/1/1.6.1/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.1/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.1/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.1/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.3/.env create mode 100644 linux/atlassian/fisheye/1/1.6.3/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.3/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.3/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.3/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.4/.env create mode 100644 linux/atlassian/fisheye/1/1.6.4/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.4/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.4/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.4/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.5.a/.env create mode 100644 linux/atlassian/fisheye/1/1.6.5.a/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.5.a/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.5.a/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.5.a/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.5/.env create mode 100644 linux/atlassian/fisheye/1/1.6.5/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.5/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.5/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.5/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.5a/.env create mode 100644 linux/atlassian/fisheye/1/1.6.5a/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.5a/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.5a/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.5a/entrypoint.sh create mode 100644 linux/atlassian/fisheye/1/1.6.6/.env create mode 100644 linux/atlassian/fisheye/1/1.6.6/Dockerfile create mode 100644 linux/atlassian/fisheye/1/1.6.6/Makefile create mode 100644 linux/atlassian/fisheye/1/1.6.6/docker-compose.yml create mode 100644 linux/atlassian/fisheye/1/1.6.6/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.0.3/.env b/linux/atlassian/crucible/1/1.0.3/.env new file mode 100644 index 000000000..b4fcad0b7 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0.3/Dockerfile b/linux/atlassian/crucible/1/1.0.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0.3/Makefile b/linux/atlassian/crucible/1/1.0.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0.3/docker-compose.yml b/linux/atlassian/crucible/1/1.0.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/crucible/1/1.0.3/entrypoint.sh b/linux/atlassian/crucible/1/1.0.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/atlassian/crucible/1/1.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/atlassian/crucible/1/1.0.4/.env b/linux/atlassian/crucible/1/1.0.4/.env new file mode 100644 index 000000000..886036292 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0.4/Dockerfile b/linux/atlassian/crucible/1/1.0.4/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0.4/Makefile b/linux/atlassian/crucible/1/1.0.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0.4/docker-compose.yml b/linux/atlassian/crucible/1/1.0.4/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0.4/entrypoint.sh b/linux/atlassian/crucible/1/1.0.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0/.env b/linux/atlassian/crucible/1/1.0/.env new file mode 100644 index 000000000..555a888db --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0/Dockerfile b/linux/atlassian/crucible/1/1.0/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0/Makefile b/linux/atlassian/crucible/1/1.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/crucible/1/1.0/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/crucible/1/1.0/docker-compose.yml b/linux/atlassian/crucible/1/1.0/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.0/entrypoint.sh b/linux/atlassian/crucible/1/1.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.1/.env b/linux/atlassian/crucible/1/1.1.1/.env new file mode 100644 index 000000000..4696e7ad0 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.1/Dockerfile b/linux/atlassian/crucible/1/1.1.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.1/Makefile b/linux/atlassian/crucible/1/1.1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.1/docker-compose.yml b/linux/atlassian/crucible/1/1.1.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.1/entrypoint.sh b/linux/atlassian/crucible/1/1.1.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.2/.env b/linux/atlassian/crucible/1/1.1.2/.env new file mode 100644 index 000000000..c7d19a235 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.2/Dockerfile b/linux/atlassian/crucible/1/1.1.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.2/Makefile b/linux/atlassian/crucible/1/1.1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.2/docker-compose.yml b/linux/atlassian/crucible/1/1.1.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.2/entrypoint.sh b/linux/atlassian/crucible/1/1.1.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.3/.env b/linux/atlassian/crucible/1/1.1.3/.env new file mode 100644 index 000000000..7a24531fb --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.3/Dockerfile b/linux/atlassian/crucible/1/1.1.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.3/Makefile b/linux/atlassian/crucible/1/1.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.3/docker-compose.yml b/linux/atlassian/crucible/1/1.1.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.3/entrypoint.sh b/linux/atlassian/crucible/1/1.1.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.4/.env b/linux/atlassian/crucible/1/1.1.4/.env new file mode 100644 index 000000000..46b605d14 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.4/Dockerfile b/linux/atlassian/crucible/1/1.1.4/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.4/Makefile b/linux/atlassian/crucible/1/1.1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.4/docker-compose.yml b/linux/atlassian/crucible/1/1.1.4/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1.4/entrypoint.sh b/linux/atlassian/crucible/1/1.1.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1/.env b/linux/atlassian/crucible/1/1.1/.env new file mode 100644 index 000000000..d42a2c90e --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1/Dockerfile b/linux/atlassian/crucible/1/1.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1/Makefile b/linux/atlassian/crucible/1/1.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/crucible/1/1.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/crucible/1/1.1/docker-compose.yml b/linux/atlassian/crucible/1/1.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.1/entrypoint.sh b/linux/atlassian/crucible/1/1.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.1/.env b/linux/atlassian/crucible/1/1.2.1/.env new file mode 100644 index 000000000..e73a23819 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.1/Dockerfile b/linux/atlassian/crucible/1/1.2.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.1/Makefile b/linux/atlassian/crucible/1/1.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.1/docker-compose.yml b/linux/atlassian/crucible/1/1.2.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.1/entrypoint.sh b/linux/atlassian/crucible/1/1.2.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.2/.env b/linux/atlassian/crucible/1/1.2.2/.env new file mode 100644 index 000000000..f4ca6a51c --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.2/Dockerfile b/linux/atlassian/crucible/1/1.2.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.2/Makefile b/linux/atlassian/crucible/1/1.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.2/docker-compose.yml b/linux/atlassian/crucible/1/1.2.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.2/entrypoint.sh b/linux/atlassian/crucible/1/1.2.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.3/.env b/linux/atlassian/crucible/1/1.2.3/.env new file mode 100644 index 000000000..f8da3d8cb --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.3/Dockerfile b/linux/atlassian/crucible/1/1.2.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.3/Makefile b/linux/atlassian/crucible/1/1.2.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.3/docker-compose.yml b/linux/atlassian/crucible/1/1.2.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2.3/entrypoint.sh b/linux/atlassian/crucible/1/1.2.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2/.env b/linux/atlassian/crucible/1/1.2/.env new file mode 100644 index 000000000..aaba1d4a2 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2/Dockerfile b/linux/atlassian/crucible/1/1.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2/Makefile b/linux/atlassian/crucible/1/1.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/crucible/1/1.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/crucible/1/1.2/docker-compose.yml b/linux/atlassian/crucible/1/1.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.2/entrypoint.sh b/linux/atlassian/crucible/1/1.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.1/.env b/linux/atlassian/crucible/1/1.5.1/.env new file mode 100644 index 000000000..e8a6ca3e4 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.1/Dockerfile b/linux/atlassian/crucible/1/1.5.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.1/Makefile b/linux/atlassian/crucible/1/1.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.1/docker-compose.yml b/linux/atlassian/crucible/1/1.5.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.1/entrypoint.sh b/linux/atlassian/crucible/1/1.5.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.2/.env b/linux/atlassian/crucible/1/1.5.2/.env new file mode 100644 index 000000000..6190ac222 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.2/Dockerfile b/linux/atlassian/crucible/1/1.5.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.2/Makefile b/linux/atlassian/crucible/1/1.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.2/docker-compose.yml b/linux/atlassian/crucible/1/1.5.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.2/entrypoint.sh b/linux/atlassian/crucible/1/1.5.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.3/.env b/linux/atlassian/crucible/1/1.5.3/.env new file mode 100644 index 000000000..952eaa7e2 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.3/Dockerfile b/linux/atlassian/crucible/1/1.5.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.3/Makefile b/linux/atlassian/crucible/1/1.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.3/docker-compose.yml b/linux/atlassian/crucible/1/1.5.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.3/entrypoint.sh b/linux/atlassian/crucible/1/1.5.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.4/.env b/linux/atlassian/crucible/1/1.5.4/.env new file mode 100644 index 000000000..c184e0b01 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.4/Dockerfile b/linux/atlassian/crucible/1/1.5.4/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.4/Makefile b/linux/atlassian/crucible/1/1.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.4/docker-compose.yml b/linux/atlassian/crucible/1/1.5.4/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5.4/entrypoint.sh b/linux/atlassian/crucible/1/1.5.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5/.env b/linux/atlassian/crucible/1/1.5/.env new file mode 100644 index 000000000..0f80a554e --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5/Dockerfile b/linux/atlassian/crucible/1/1.5/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5/Makefile b/linux/atlassian/crucible/1/1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/crucible/1/1.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/crucible/1/1.5/docker-compose.yml b/linux/atlassian/crucible/1/1.5/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.5/entrypoint.sh b/linux/atlassian/crucible/1/1.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0/.env b/linux/atlassian/crucible/1/1.6.0/.env new file mode 100644 index 000000000..da149cae5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0/Dockerfile b/linux/atlassian/crucible/1/1.6.0/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0/Makefile b/linux/atlassian/crucible/1/1.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0/docker-compose.yml b/linux/atlassian/crucible/1/1.6.0/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0/entrypoint.sh b/linux/atlassian/crucible/1/1.6.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta1/.env b/linux/atlassian/crucible/1/1.6.0Beta1/.env new file mode 100644 index 000000000..07ec71ef9 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta1/Dockerfile b/linux/atlassian/crucible/1/1.6.0Beta1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta1/Makefile b/linux/atlassian/crucible/1/1.6.0Beta1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml b/linux/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh b/linux/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta2/.env b/linux/atlassian/crucible/1/1.6.0Beta2/.env new file mode 100644 index 000000000..5e27753f8 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta2/Dockerfile b/linux/atlassian/crucible/1/1.6.0Beta2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta2/Makefile b/linux/atlassian/crucible/1/1.6.0Beta2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml b/linux/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh b/linux/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.1/.env b/linux/atlassian/crucible/1/1.6.1/.env new file mode 100644 index 000000000..c2bff741b --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.1/Dockerfile b/linux/atlassian/crucible/1/1.6.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.1/Makefile b/linux/atlassian/crucible/1/1.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.1/docker-compose.yml b/linux/atlassian/crucible/1/1.6.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.1/entrypoint.sh b/linux/atlassian/crucible/1/1.6.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2.1/.env b/linux/atlassian/crucible/1/1.6.2.1/.env new file mode 100644 index 000000000..cad3b7d01 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2.1/Dockerfile b/linux/atlassian/crucible/1/1.6.2.1/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2.1/Makefile b/linux/atlassian/crucible/1/1.6.2.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2.1/docker-compose.yml b/linux/atlassian/crucible/1/1.6.2.1/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2.1/entrypoint.sh b/linux/atlassian/crucible/1/1.6.2.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2/.env b/linux/atlassian/crucible/1/1.6.2/.env new file mode 100644 index 000000000..8f98dad06 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2/Dockerfile b/linux/atlassian/crucible/1/1.6.2/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2/Makefile b/linux/atlassian/crucible/1/1.6.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2/docker-compose.yml b/linux/atlassian/crucible/1/1.6.2/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.2/entrypoint.sh b/linux/atlassian/crucible/1/1.6.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.3/.env b/linux/atlassian/crucible/1/1.6.3/.env new file mode 100644 index 000000000..fad673518 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.3/Dockerfile b/linux/atlassian/crucible/1/1.6.3/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.3/Makefile b/linux/atlassian/crucible/1/1.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.3/docker-compose.yml b/linux/atlassian/crucible/1/1.6.3/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.3/entrypoint.sh b/linux/atlassian/crucible/1/1.6.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.4/.env b/linux/atlassian/crucible/1/1.6.4/.env new file mode 100644 index 000000000..ad8e970fa --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.4/Dockerfile b/linux/atlassian/crucible/1/1.6.4/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.4/Makefile b/linux/atlassian/crucible/1/1.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.4/docker-compose.yml b/linux/atlassian/crucible/1/1.6.4/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.4/entrypoint.sh b/linux/atlassian/crucible/1/1.6.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5.a/.env b/linux/atlassian/crucible/1/1.6.5.a/.env new file mode 100644 index 000000000..c628ed5de --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5.a/Dockerfile b/linux/atlassian/crucible/1/1.6.5.a/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5.a/Makefile b/linux/atlassian/crucible/1/1.6.5.a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5.a/docker-compose.yml b/linux/atlassian/crucible/1/1.6.5.a/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5.a/entrypoint.sh b/linux/atlassian/crucible/1/1.6.5.a/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5/.env b/linux/atlassian/crucible/1/1.6.5/.env new file mode 100644 index 000000000..43a8e7576 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5/Dockerfile b/linux/atlassian/crucible/1/1.6.5/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5/Makefile b/linux/atlassian/crucible/1/1.6.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5/docker-compose.yml b/linux/atlassian/crucible/1/1.6.5/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5/entrypoint.sh b/linux/atlassian/crucible/1/1.6.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5a/.env b/linux/atlassian/crucible/1/1.6.5a/.env new file mode 100644 index 000000000..6070c5b66 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5a/Dockerfile b/linux/atlassian/crucible/1/1.6.5a/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5a/Makefile b/linux/atlassian/crucible/1/1.6.5a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5a/docker-compose.yml b/linux/atlassian/crucible/1/1.6.5a/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.5a/entrypoint.sh b/linux/atlassian/crucible/1/1.6.5a/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.6/.env b/linux/atlassian/crucible/1/1.6.6/.env new file mode 100644 index 000000000..dd85e3c14 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.6/Dockerfile b/linux/atlassian/crucible/1/1.6.6/Dockerfile new file mode 100644 index 000000000..3efd74f1a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.6/Makefile b/linux/atlassian/crucible/1/1.6.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.6/docker-compose.yml b/linux/atlassian/crucible/1/1.6.6/docker-compose.yml new file mode 100644 index 000000000..127b0dd9a --- /dev/null +++ b/linux/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/atlassian/crucible/1/1.6.6/entrypoint.sh b/linux/atlassian/crucible/1/1.6.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.0.1a/.env b/linux/atlassian/fisheye/1/1.0.1a/.env new file mode 100644 index 000000000..09774c7f1 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.0.1a/Dockerfile b/linux/atlassian/fisheye/1/1.0.1a/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.0.1a/Makefile b/linux/atlassian/fisheye/1/1.0.1a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.0.1a/docker-compose.yml b/linux/atlassian/fisheye/1/1.0.1a/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.0.1a/entrypoint.sh b/linux/atlassian/fisheye/1/1.0.1a/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.1.3/.env b/linux/atlassian/fisheye/1/1.1.3/.env new file mode 100644 index 000000000..d77c95411 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.1.3/Dockerfile b/linux/atlassian/fisheye/1/1.1.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.1.3/Makefile b/linux/atlassian/fisheye/1/1.1.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.1.3/docker-compose.yml b/linux/atlassian/fisheye/1/1.1.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.1.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.1.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.2.5/.env b/linux/atlassian/fisheye/1/1.2.5/.env new file mode 100644 index 000000000..fc6a9304c --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.2.5/Dockerfile b/linux/atlassian/fisheye/1/1.2.5/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.2.5/Makefile b/linux/atlassian/fisheye/1/1.2.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.2.5/docker-compose.yml b/linux/atlassian/fisheye/1/1.2.5/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.2.5/entrypoint.sh b/linux/atlassian/fisheye/1/1.2.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.3/.env b/linux/atlassian/fisheye/1/1.3.3/.env new file mode 100644 index 000000000..c207ee032 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.3/Dockerfile b/linux/atlassian/fisheye/1/1.3.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.3/Makefile b/linux/atlassian/fisheye/1/1.3.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.3/docker-compose.yml b/linux/atlassian/fisheye/1/1.3.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.4/.env b/linux/atlassian/fisheye/1/1.3.4/.env new file mode 100644 index 000000000..ad0a606c4 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.4/Dockerfile b/linux/atlassian/fisheye/1/1.3.4/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.4/Makefile b/linux/atlassian/fisheye/1/1.3.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.4/docker-compose.yml b/linux/atlassian/fisheye/1/1.3.4/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.4/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.5/.env b/linux/atlassian/fisheye/1/1.3.5/.env new file mode 100644 index 000000000..0331f045c --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.5/Dockerfile b/linux/atlassian/fisheye/1/1.3.5/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.5/Makefile b/linux/atlassian/fisheye/1/1.3.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.5/docker-compose.yml b/linux/atlassian/fisheye/1/1.3.5/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.5/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.6/.env b/linux/atlassian/fisheye/1/1.3.6/.env new file mode 100644 index 000000000..a3ecceee1 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.6/Dockerfile b/linux/atlassian/fisheye/1/1.3.6/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.6/Makefile b/linux/atlassian/fisheye/1/1.3.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.6/docker-compose.yml b/linux/atlassian/fisheye/1/1.3.6/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.6/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.7/.env b/linux/atlassian/fisheye/1/1.3.7/.env new file mode 100644 index 000000000..a78be37ed --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.7/Dockerfile b/linux/atlassian/fisheye/1/1.3.7/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.7/Makefile b/linux/atlassian/fisheye/1/1.3.7/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.7/docker-compose.yml b/linux/atlassian/fisheye/1/1.3.7/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.7/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.7/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.8/.env b/linux/atlassian/fisheye/1/1.3.8/.env new file mode 100644 index 000000000..9070c45a9 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.8/Dockerfile b/linux/atlassian/fisheye/1/1.3.8/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.8/Makefile b/linux/atlassian/fisheye/1/1.3.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.8/docker-compose.yml b/linux/atlassian/fisheye/1/1.3.8/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.3.8/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.8/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.1/.env b/linux/atlassian/fisheye/1/1.4.1/.env new file mode 100644 index 000000000..59788e4b0 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.1/Dockerfile b/linux/atlassian/fisheye/1/1.4.1/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.1/Makefile b/linux/atlassian/fisheye/1/1.4.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.1/docker-compose.yml b/linux/atlassian/fisheye/1/1.4.1/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.1/entrypoint.sh b/linux/atlassian/fisheye/1/1.4.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.2/.env b/linux/atlassian/fisheye/1/1.4.2/.env new file mode 100644 index 000000000..b23287179 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.2/Dockerfile b/linux/atlassian/fisheye/1/1.4.2/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.2/Makefile b/linux/atlassian/fisheye/1/1.4.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.2/docker-compose.yml b/linux/atlassian/fisheye/1/1.4.2/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.2/entrypoint.sh b/linux/atlassian/fisheye/1/1.4.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.3/.env b/linux/atlassian/fisheye/1/1.4.3/.env new file mode 100644 index 000000000..66a7ab561 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.3/Dockerfile b/linux/atlassian/fisheye/1/1.4.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.3/Makefile b/linux/atlassian/fisheye/1/1.4.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.3/docker-compose.yml b/linux/atlassian/fisheye/1/1.4.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.4.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4/.env b/linux/atlassian/fisheye/1/1.4/.env new file mode 100644 index 000000000..faf2bd26a --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4/Dockerfile b/linux/atlassian/fisheye/1/1.4/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4/Makefile b/linux/atlassian/fisheye/1/1.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye/1/1.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye/1/1.4/docker-compose.yml b/linux/atlassian/fisheye/1/1.4/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.4/entrypoint.sh b/linux/atlassian/fisheye/1/1.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.1/.env b/linux/atlassian/fisheye/1/1.5.1/.env new file mode 100644 index 000000000..67893f9f5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.1/Dockerfile b/linux/atlassian/fisheye/1/1.5.1/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.1/Makefile b/linux/atlassian/fisheye/1/1.5.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.1/docker-compose.yml b/linux/atlassian/fisheye/1/1.5.1/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.1/entrypoint.sh b/linux/atlassian/fisheye/1/1.5.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.2/.env b/linux/atlassian/fisheye/1/1.5.2/.env new file mode 100644 index 000000000..be267994e --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.2/Dockerfile b/linux/atlassian/fisheye/1/1.5.2/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.2/Makefile b/linux/atlassian/fisheye/1/1.5.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.2/docker-compose.yml b/linux/atlassian/fisheye/1/1.5.2/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.2/entrypoint.sh b/linux/atlassian/fisheye/1/1.5.2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.3/.env b/linux/atlassian/fisheye/1/1.5.3/.env new file mode 100644 index 000000000..15528b579 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.3/Dockerfile b/linux/atlassian/fisheye/1/1.5.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.3/Makefile b/linux/atlassian/fisheye/1/1.5.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.3/docker-compose.yml b/linux/atlassian/fisheye/1/1.5.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.5.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.4/.env b/linux/atlassian/fisheye/1/1.5.4/.env new file mode 100644 index 000000000..8e56c6a61 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.4/Dockerfile b/linux/atlassian/fisheye/1/1.5.4/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.4/Makefile b/linux/atlassian/fisheye/1/1.5.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.4/docker-compose.yml b/linux/atlassian/fisheye/1/1.5.4/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5.4/entrypoint.sh b/linux/atlassian/fisheye/1/1.5.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5/.env b/linux/atlassian/fisheye/1/1.5/.env new file mode 100644 index 000000000..89f754df3 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5/Dockerfile b/linux/atlassian/fisheye/1/1.5/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5/Makefile b/linux/atlassian/fisheye/1/1.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/fisheye/1/1.5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/fisheye/1/1.5/docker-compose.yml b/linux/atlassian/fisheye/1/1.5/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.5/entrypoint.sh b/linux/atlassian/fisheye/1/1.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0/.env b/linux/atlassian/fisheye/1/1.6.0/.env new file mode 100644 index 000000000..ed3a4ed14 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0/Dockerfile b/linux/atlassian/fisheye/1/1.6.0/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0/Makefile b/linux/atlassian/fisheye/1/1.6.0/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.0/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.0/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta1/.env b/linux/atlassian/fisheye/1/1.6.0Beta1/.env new file mode 100644 index 000000000..1ba71cecd --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta1/Dockerfile b/linux/atlassian/fisheye/1/1.6.0Beta1/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta1/Makefile b/linux/atlassian/fisheye/1/1.6.0Beta1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta2/.env b/linux/atlassian/fisheye/1/1.6.0Beta2/.env new file mode 100644 index 000000000..3823a8340 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta2/Dockerfile b/linux/atlassian/fisheye/1/1.6.0Beta2/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta2/Makefile b/linux/atlassian/fisheye/1/1.6.0Beta2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.1/.env b/linux/atlassian/fisheye/1/1.6.1/.env new file mode 100644 index 000000000..fda976f9b --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.1/Dockerfile b/linux/atlassian/fisheye/1/1.6.1/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.1/Makefile b/linux/atlassian/fisheye/1/1.6.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.1/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.1/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.1/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.1/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.3/.env b/linux/atlassian/fisheye/1/1.6.3/.env new file mode 100644 index 000000000..5af72704f --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.3/Dockerfile b/linux/atlassian/fisheye/1/1.6.3/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.3/Makefile b/linux/atlassian/fisheye/1/1.6.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.3/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.3/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.3/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.4/.env b/linux/atlassian/fisheye/1/1.6.4/.env new file mode 100644 index 000000000..fcb63d5f1 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.4/Dockerfile b/linux/atlassian/fisheye/1/1.6.4/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.4/Makefile b/linux/atlassian/fisheye/1/1.6.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.4/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.4/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.4/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.4/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5.a/.env b/linux/atlassian/fisheye/1/1.6.5.a/.env new file mode 100644 index 000000000..8f5135811 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5.a/Dockerfile b/linux/atlassian/fisheye/1/1.6.5.a/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5.a/Makefile b/linux/atlassian/fisheye/1/1.6.5.a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5.a/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.5.a/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5.a/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.5.a/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5/.env b/linux/atlassian/fisheye/1/1.6.5/.env new file mode 100644 index 000000000..1adbea3a2 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5/Dockerfile b/linux/atlassian/fisheye/1/1.6.5/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5/Makefile b/linux/atlassian/fisheye/1/1.6.5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.5/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.5/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5a/.env b/linux/atlassian/fisheye/1/1.6.5a/.env new file mode 100644 index 000000000..d857ee4cb --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5a/Dockerfile b/linux/atlassian/fisheye/1/1.6.5a/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5a/Makefile b/linux/atlassian/fisheye/1/1.6.5a/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5a/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.5a/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.5a/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.5a/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.6/.env b/linux/atlassian/fisheye/1/1.6.6/.env new file mode 100644 index 000000000..f68a90347 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.6/Dockerfile b/linux/atlassian/fisheye/1/1.6.6/Dockerfile new file mode 100644 index 000000000..426636d79 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.6/Makefile b/linux/atlassian/fisheye/1/1.6.6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.6/docker-compose.yml b/linux/atlassian/fisheye/1/1.6.6/docker-compose.yml new file mode 100644 index 000000000..a49525ebf --- /dev/null +++ b/linux/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/atlassian/fisheye/1/1.6.6/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.6/entrypoint.sh new file mode 100644 index 000000000..5559ebcb5 --- /dev/null +++ b/linux/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 From dc8d3ef8f245ddc0cb6015d7e71c94f88da06a6d Mon Sep 17 00:00:00 2001 From: Odmin Date: Wed, 19 May 2021 15:53:25 +0300 Subject: [PATCH 030/144] chmox +x for *.sh --- linux/atlassian/crucible/1/1.0.3/entrypoint.sh | 0 linux/atlassian/crucible/1/1.0.4/entrypoint.sh | 0 linux/atlassian/crucible/1/1.0/entrypoint.sh | 0 linux/atlassian/crucible/1/1.1.1/entrypoint.sh | 0 linux/atlassian/crucible/1/1.1.2/entrypoint.sh | 0 linux/atlassian/crucible/1/1.1.3/entrypoint.sh | 0 linux/atlassian/crucible/1/1.1.4/entrypoint.sh | 0 linux/atlassian/crucible/1/1.1/entrypoint.sh | 0 linux/atlassian/crucible/1/1.2.1/entrypoint.sh | 0 linux/atlassian/crucible/1/1.2.2/entrypoint.sh | 0 linux/atlassian/crucible/1/1.2.3/entrypoint.sh | 0 linux/atlassian/crucible/1/1.2/entrypoint.sh | 0 linux/atlassian/crucible/1/1.5.1/entrypoint.sh | 0 linux/atlassian/crucible/1/1.5.2/entrypoint.sh | 0 linux/atlassian/crucible/1/1.5.3/entrypoint.sh | 0 linux/atlassian/crucible/1/1.5.4/entrypoint.sh | 0 linux/atlassian/crucible/1/1.5/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.0/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.1/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.2.1/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.2/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.3/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.4/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.5.a/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.5/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.5a/entrypoint.sh | 0 linux/atlassian/crucible/1/1.6.6/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.0.1a/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.1.3/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.2.5/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.3.3/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.3.4/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.3.5/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.3.6/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.3.7/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.3.8/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.4.1/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.4.2/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.4.3/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.4/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.5.1/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.5.2/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.5.3/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.5.4/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.5/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.0/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.1/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.3/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.4/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.5.a/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.5/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.5a/entrypoint.sh | 0 linux/atlassian/fisheye/1/1.6.6/entrypoint.sh | 0 57 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 linux/atlassian/crucible/1/1.0.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.0.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.1.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.1.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.1.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.1.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.2.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.2.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.2.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.5.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.5.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.5.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.5.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.2.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.5.a/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.5a/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/1/1.6.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.0.1a/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.1.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.2.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.3.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.3.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.3.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.3.6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.3.7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.3.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.4.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.4.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.4.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.5.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.5.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.5.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.5.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.0/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.5.a/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.5a/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/1/1.6.6/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.0.3/entrypoint.sh b/linux/atlassian/crucible/1/1.0.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.0.4/entrypoint.sh b/linux/atlassian/crucible/1/1.0.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.0/entrypoint.sh b/linux/atlassian/crucible/1/1.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.1.1/entrypoint.sh b/linux/atlassian/crucible/1/1.1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.1.2/entrypoint.sh b/linux/atlassian/crucible/1/1.1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.1.3/entrypoint.sh b/linux/atlassian/crucible/1/1.1.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.1.4/entrypoint.sh b/linux/atlassian/crucible/1/1.1.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.1/entrypoint.sh b/linux/atlassian/crucible/1/1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.2.1/entrypoint.sh b/linux/atlassian/crucible/1/1.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.2.2/entrypoint.sh b/linux/atlassian/crucible/1/1.2.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.2.3/entrypoint.sh b/linux/atlassian/crucible/1/1.2.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.2/entrypoint.sh b/linux/atlassian/crucible/1/1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.5.1/entrypoint.sh b/linux/atlassian/crucible/1/1.5.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.5.2/entrypoint.sh b/linux/atlassian/crucible/1/1.5.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.5.3/entrypoint.sh b/linux/atlassian/crucible/1/1.5.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.5.4/entrypoint.sh b/linux/atlassian/crucible/1/1.5.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.5/entrypoint.sh b/linux/atlassian/crucible/1/1.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.0/entrypoint.sh b/linux/atlassian/crucible/1/1.6.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh b/linux/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh b/linux/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.1/entrypoint.sh b/linux/atlassian/crucible/1/1.6.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.2.1/entrypoint.sh b/linux/atlassian/crucible/1/1.6.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.2/entrypoint.sh b/linux/atlassian/crucible/1/1.6.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.3/entrypoint.sh b/linux/atlassian/crucible/1/1.6.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.4/entrypoint.sh b/linux/atlassian/crucible/1/1.6.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.5.a/entrypoint.sh b/linux/atlassian/crucible/1/1.6.5.a/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.5/entrypoint.sh b/linux/atlassian/crucible/1/1.6.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.5a/entrypoint.sh b/linux/atlassian/crucible/1/1.6.5a/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/1/1.6.6/entrypoint.sh b/linux/atlassian/crucible/1/1.6.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.0.1a/entrypoint.sh b/linux/atlassian/fisheye/1/1.0.1a/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.1.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.1.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.2.5/entrypoint.sh b/linux/atlassian/fisheye/1/1.2.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.3.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.3.4/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.3.5/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.3.6/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.3.7/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.3.8/entrypoint.sh b/linux/atlassian/fisheye/1/1.3.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.4.1/entrypoint.sh b/linux/atlassian/fisheye/1/1.4.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.4.2/entrypoint.sh b/linux/atlassian/fisheye/1/1.4.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.4.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.4.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.4/entrypoint.sh b/linux/atlassian/fisheye/1/1.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.5.1/entrypoint.sh b/linux/atlassian/fisheye/1/1.5.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.5.2/entrypoint.sh b/linux/atlassian/fisheye/1/1.5.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.5.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.5.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.5.4/entrypoint.sh b/linux/atlassian/fisheye/1/1.5.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.5/entrypoint.sh b/linux/atlassian/fisheye/1/1.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.0/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.1/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.3/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.4/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.5.a/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.5.a/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.5/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.5a/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.5a/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/1/1.6.6/entrypoint.sh b/linux/atlassian/fisheye/1/1.6.6/entrypoint.sh old mode 100644 new mode 100755 From 9b2edf1e9a63cdc682a65affaf2b5a4722eaa54d Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 18:22:27 +0300 Subject: [PATCH 031/144] confluence readme cleanup --- linux/atlassian/confluence/5/5.5/README.md | 131 ----------------- linux/atlassian/confluence/5/5.9.14/README.md | 131 ----------------- linux/atlassian/confluence/5/README.md | 8 -- linux/atlassian/confluence/6/6.0.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.0.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.0.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.0.4/README.md | 131 ----------------- linux/atlassian/confluence/6/6.0.5/README.md | 131 ----------------- linux/atlassian/confluence/6/6.0.6/README.md | 131 ----------------- linux/atlassian/confluence/6/6.0.7/README.md | 131 ----------------- linux/atlassian/confluence/6/6.1.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.1.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.1.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.1.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.1.4/README.md | 131 ----------------- linux/atlassian/confluence/6/6.10.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.10.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.10.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.10.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.11.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.11.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.11.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.12.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.12.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.12.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.12.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.12.4/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.1/README.md | 131 ----------------- .../atlassian/confluence/6/6.13.10/README.md | 131 ----------------- .../atlassian/confluence/6/6.13.11/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.4/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.5/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.6/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.7/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.8/README.md | 131 ----------------- linux/atlassian/confluence/6/6.13.9/README.md | 131 ----------------- linux/atlassian/confluence/6/6.14.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.14.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.14.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.14.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.15.1/README.md | 131 ----------------- .../atlassian/confluence/6/6.15.10/README.md | 131 ----------------- linux/atlassian/confluence/6/6.15.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.15.4/README.md | 131 ----------------- linux/atlassian/confluence/6/6.15.6/README.md | 131 ----------------- linux/atlassian/confluence/6/6.15.7/README.md | 131 ----------------- linux/atlassian/confluence/6/6.15.8/README.md | 131 ----------------- linux/atlassian/confluence/6/6.15.9/README.md | 131 ----------------- linux/atlassian/confluence/6/6.2.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.2.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.2.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.2.4/README.md | 131 ----------------- linux/atlassian/confluence/6/6.3.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.3.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.3.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.3.4/README.md | 131 ----------------- linux/atlassian/confluence/6/6.4.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.4.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.4.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.4.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.5.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.5.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.5.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.5.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.10/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.11/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.12/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.13/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.14/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.15/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.17/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.4/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.5/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.6/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.7/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.8/README.md | 131 ----------------- linux/atlassian/confluence/6/6.6.9/README.md | 131 ----------------- linux/atlassian/confluence/6/6.7.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.7.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.7.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.7.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.8.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.8.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.8.2/README.md | 131 ----------------- linux/atlassian/confluence/6/6.8.3/README.md | 131 ----------------- linux/atlassian/confluence/6/6.8.5/README.md | 131 ----------------- linux/atlassian/confluence/6/6.9.0/README.md | 131 ----------------- linux/atlassian/confluence/6/6.9.1/README.md | 131 ----------------- linux/atlassian/confluence/6/6.9.3/README.md | 131 ----------------- linux/atlassian/confluence/6/README.md | 8 -- linux/atlassian/confluence/7/7.0.1/README.md | 131 ----------------- linux/atlassian/confluence/7/7.0.2/README.md | 131 ----------------- linux/atlassian/confluence/7/7.0.3/README.md | 131 ----------------- linux/atlassian/confluence/7/7.0.4/README.md | 131 ----------------- linux/atlassian/confluence/7/7.0.5/README.md | 131 ----------------- linux/atlassian/confluence/7/7.1.0/README.md | 131 ----------------- linux/atlassian/confluence/7/7.1.1/README.md | 131 ----------------- linux/atlassian/confluence/7/7.1.2/README.md | 131 ----------------- linux/atlassian/confluence/7/7.2.0/README.md | 131 ----------------- linux/atlassian/confluence/7/7.2.1/README.md | 131 ----------------- linux/atlassian/confluence/7/7.2.2/README.md | 131 ----------------- linux/atlassian/confluence/7/7.3.1/README.md | 131 ----------------- linux/atlassian/confluence/7/7.3.2/README.md | 131 ----------------- linux/atlassian/confluence/7/7.3.3/README.md | 131 ----------------- linux/atlassian/confluence/7/7.3.4/README.md | 131 ----------------- linux/atlassian/confluence/7/7.3.5/README.md | 131 ----------------- linux/atlassian/confluence/7/7.4.0/README.md | 131 ----------------- linux/atlassian/confluence/7/7.5.0/README.md | 131 ----------------- linux/atlassian/confluence/7/README.md | 8 -- linux/atlassian/confluence/README.md | 136 +++++++++++++++++- linux/atlassian/confluence/latest/README.md | 131 ----------------- 118 files changed, 135 insertions(+), 14959 deletions(-) delete mode 100644 linux/atlassian/confluence/5/5.5/README.md delete mode 100644 linux/atlassian/confluence/5/5.9.14/README.md delete mode 100644 linux/atlassian/confluence/5/README.md delete mode 100644 linux/atlassian/confluence/6/6.0.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.0.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.0.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.0.4/README.md delete mode 100644 linux/atlassian/confluence/6/6.0.5/README.md delete mode 100644 linux/atlassian/confluence/6/6.0.6/README.md delete mode 100644 linux/atlassian/confluence/6/6.0.7/README.md delete mode 100644 linux/atlassian/confluence/6/6.1.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.1.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.1.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.1.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.1.4/README.md delete mode 100644 linux/atlassian/confluence/6/6.10.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.10.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.10.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.10.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.11.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.11.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.11.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.12.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.12.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.12.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.12.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.12.4/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.10/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.11/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.4/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.5/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.6/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.7/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.8/README.md delete mode 100644 linux/atlassian/confluence/6/6.13.9/README.md delete mode 100644 linux/atlassian/confluence/6/6.14.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.14.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.14.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.14.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.15.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.15.10/README.md delete mode 100644 linux/atlassian/confluence/6/6.15.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.15.4/README.md delete mode 100644 linux/atlassian/confluence/6/6.15.6/README.md delete mode 100644 linux/atlassian/confluence/6/6.15.7/README.md delete mode 100644 linux/atlassian/confluence/6/6.15.8/README.md delete mode 100644 linux/atlassian/confluence/6/6.15.9/README.md delete mode 100644 linux/atlassian/confluence/6/6.2.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.2.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.2.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.2.4/README.md delete mode 100644 linux/atlassian/confluence/6/6.3.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.3.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.3.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.3.4/README.md delete mode 100644 linux/atlassian/confluence/6/6.4.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.4.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.4.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.4.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.5.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.5.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.5.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.5.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.10/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.11/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.12/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.13/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.14/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.15/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.17/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.4/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.5/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.6/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.7/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.8/README.md delete mode 100644 linux/atlassian/confluence/6/6.6.9/README.md delete mode 100644 linux/atlassian/confluence/6/6.7.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.7.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.7.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.7.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.8.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.8.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.8.2/README.md delete mode 100644 linux/atlassian/confluence/6/6.8.3/README.md delete mode 100644 linux/atlassian/confluence/6/6.8.5/README.md delete mode 100644 linux/atlassian/confluence/6/6.9.0/README.md delete mode 100644 linux/atlassian/confluence/6/6.9.1/README.md delete mode 100644 linux/atlassian/confluence/6/6.9.3/README.md delete mode 100644 linux/atlassian/confluence/6/README.md delete mode 100644 linux/atlassian/confluence/7/7.0.1/README.md delete mode 100644 linux/atlassian/confluence/7/7.0.2/README.md delete mode 100644 linux/atlassian/confluence/7/7.0.3/README.md delete mode 100644 linux/atlassian/confluence/7/7.0.4/README.md delete mode 100644 linux/atlassian/confluence/7/7.0.5/README.md delete mode 100644 linux/atlassian/confluence/7/7.1.0/README.md delete mode 100644 linux/atlassian/confluence/7/7.1.1/README.md delete mode 100644 linux/atlassian/confluence/7/7.1.2/README.md delete mode 100644 linux/atlassian/confluence/7/7.2.0/README.md delete mode 100644 linux/atlassian/confluence/7/7.2.1/README.md delete mode 100644 linux/atlassian/confluence/7/7.2.2/README.md delete mode 100644 linux/atlassian/confluence/7/7.3.1/README.md delete mode 100644 linux/atlassian/confluence/7/7.3.2/README.md delete mode 100644 linux/atlassian/confluence/7/7.3.3/README.md delete mode 100644 linux/atlassian/confluence/7/7.3.4/README.md delete mode 100644 linux/atlassian/confluence/7/7.3.5/README.md delete mode 100644 linux/atlassian/confluence/7/7.4.0/README.md delete mode 100644 linux/atlassian/confluence/7/7.5.0/README.md delete mode 100644 linux/atlassian/confluence/7/README.md delete mode 100644 linux/atlassian/confluence/latest/README.md 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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 index 309865c3f..dd133a134 100644 --- a/linux/atlassian/confluence/README.md +++ b/linux/atlassian/confluence/README.md @@ -8,4 +8,138 @@ 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 +*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/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). - From b2c1d6f936bb0c62f5dc2f706182244fba11a13e Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 18:22:36 +0300 Subject: [PATCH 032/144] confluence 5 templates --- .../data/confluence/templates/5/Dockerfile | 49 +++++++++++++++++++ .../data/confluence/templates/5/Makefile | 5 ++ .../confluence/templates/5/docker-compose.yml | 9 ++++ .../data/confluence/templates/5/entrypoint.sh | 39 +++++++++++++++ 4 files changed, 102 insertions(+) create mode 100644 bin/dotnet/data/confluence/templates/5/Dockerfile create mode 100644 bin/dotnet/data/confluence/templates/5/Makefile create mode 100644 bin/dotnet/data/confluence/templates/5/docker-compose.yml create mode 100644 bin/dotnet/data/confluence/templates/5/entrypoint.sh diff --git a/bin/dotnet/data/confluence/templates/5/Dockerfile b/bin/dotnet/data/confluence/templates/5/Dockerfile new file mode 100644 index 000000000..948204891 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/confluence/templates/5/Makefile b/bin/dotnet/data/confluence/templates/5/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/confluence/templates/5/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/confluence/templates/5/docker-compose.yml b/bin/dotnet/data/confluence/templates/5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/confluence/templates/5/entrypoint.sh b/bin/dotnet/data/confluence/templates/5/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/bin/dotnet/data/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 From 2bf186ccd54a3d2f266a8cea6d02710d2b80c026 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 18:49:57 +0300 Subject: [PATCH 033/144] confluence 6 templates --- .../data/confluence/templates/6/Dockerfile | 49 +++++++++++++++++++ .../data/confluence/templates/6/Makefile | 5 ++ .../confluence/templates/6/docker-compose.yml | 9 ++++ .../data/confluence/templates/6/entrypoint.sh | 39 +++++++++++++++ 4 files changed, 102 insertions(+) create mode 100644 bin/dotnet/data/confluence/templates/6/Dockerfile create mode 100644 bin/dotnet/data/confluence/templates/6/Makefile create mode 100644 bin/dotnet/data/confluence/templates/6/docker-compose.yml create mode 100644 bin/dotnet/data/confluence/templates/6/entrypoint.sh diff --git a/bin/dotnet/data/confluence/templates/6/Dockerfile b/bin/dotnet/data/confluence/templates/6/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/confluence/templates/6/Makefile b/bin/dotnet/data/confluence/templates/6/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/bin/dotnet/data/confluence/templates/6/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/bin/dotnet/data/confluence/templates/6/docker-compose.yml b/bin/dotnet/data/confluence/templates/6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/bin/dotnet/data/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/bin/dotnet/data/confluence/templates/6/entrypoint.sh b/bin/dotnet/data/confluence/templates/6/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/bin/dotnet/data/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 From bca945ef040b6e1f4f450c19353b41a76b3b2d48 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 19 May 2021 18:51:33 +0300 Subject: [PATCH 034/144] confluence 6 new inmages --- linux/atlassian/confluence/6/6.0.1/.env | 3 ++ linux/atlassian/confluence/6/6.0.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.0.1/Makefile | 8 +-- .../confluence/6/6.0.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.0.2/.env | 3 ++ linux/atlassian/confluence/6/6.0.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.0.2/Makefile | 8 +-- .../confluence/6/6.0.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.0.3/.env | 3 ++ linux/atlassian/confluence/6/6.0.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.0.3/Makefile | 8 +-- .../confluence/6/6.0.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.0.4/.env | 3 ++ linux/atlassian/confluence/6/6.0.4/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.0.4/Makefile | 8 +-- .../confluence/6/6.0.4/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.0.5/.env | 3 ++ linux/atlassian/confluence/6/6.0.5/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.0.5/Makefile | 8 +-- .../confluence/6/6.0.5/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.0.6/.env | 3 ++ linux/atlassian/confluence/6/6.0.6/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.0.6/Makefile | 8 +-- .../confluence/6/6.0.6/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.0.7/.env | 3 ++ linux/atlassian/confluence/6/6.0.7/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.0.7/Makefile | 8 +-- .../confluence/6/6.0.7/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.1.0/.env | 3 ++ linux/atlassian/confluence/6/6.1.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.1.0/Makefile | 8 +-- .../confluence/6/6.1.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.1.1/.env | 3 ++ linux/atlassian/confluence/6/6.1.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.1.1/Makefile | 8 +-- .../confluence/6/6.1.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.1.2/.env | 3 ++ linux/atlassian/confluence/6/6.1.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.1.2/Makefile | 8 +-- .../confluence/6/6.1.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.1.3/.env | 3 ++ linux/atlassian/confluence/6/6.1.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.1.3/Makefile | 8 +-- .../confluence/6/6.1.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.1.4/.env | 3 ++ linux/atlassian/confluence/6/6.1.4/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.1.4/Makefile | 8 +-- .../confluence/6/6.1.4/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.10.0/.env | 3 ++ .../atlassian/confluence/6/6.10.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.10.0/Makefile | 7 +-- .../confluence/6/6.10.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.10.1/.env | 3 ++ .../atlassian/confluence/6/6.10.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.10.1/Makefile | 7 +-- .../confluence/6/6.10.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.10.2/.env | 3 ++ .../atlassian/confluence/6/6.10.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.10.2/Makefile | 7 +-- .../confluence/6/6.10.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.10.3/.env | 3 ++ .../atlassian/confluence/6/6.10.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.10.3/Makefile | 7 +-- .../confluence/6/6.10.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.11.0/.env | 3 ++ .../atlassian/confluence/6/6.11.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.11.0/Makefile | 7 +-- .../confluence/6/6.11.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.11.1/.env | 3 ++ .../atlassian/confluence/6/6.11.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.11.1/Makefile | 7 +-- .../confluence/6/6.11.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.11.2/.env | 3 ++ .../atlassian/confluence/6/6.11.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.11.2/Makefile | 7 +-- .../confluence/6/6.11.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.12.0/.env | 3 ++ .../atlassian/confluence/6/6.12.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.12.0/Makefile | 7 +-- .../confluence/6/6.12.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.12.1/.env | 3 ++ .../atlassian/confluence/6/6.12.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.12.1/Makefile | 7 +-- .../confluence/6/6.12.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.12.2/.env | 3 ++ .../atlassian/confluence/6/6.12.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.12.2/Makefile | 7 +-- .../confluence/6/6.12.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.12.3/.env | 3 ++ .../atlassian/confluence/6/6.12.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.12.3/Makefile | 7 +-- .../confluence/6/6.12.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.12.4/.env | 3 ++ .../atlassian/confluence/6/6.12.4/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.12.4/Makefile | 7 +-- .../confluence/6/6.12.4/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.0/.env | 3 ++ .../atlassian/confluence/6/6.13.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.0/Makefile | 7 +-- .../confluence/6/6.13.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.1/.env | 3 ++ .../atlassian/confluence/6/6.13.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.1/Makefile | 7 +-- .../confluence/6/6.13.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.10/.env | 3 ++ .../atlassian/confluence/6/6.13.10/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.10/Makefile | 7 +-- .../confluence/6/6.13.10/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.11/.env | 3 ++ .../atlassian/confluence/6/6.13.11/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.11/Makefile | 8 +-- .../confluence/6/6.13.11/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.12/.env | 3 ++ .../atlassian/confluence/6/6.13.12/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.13.12/Makefile | 5 ++ .../confluence/6/6.13.12/docker-compose.yml | 9 ++++ .../confluence/6/6.13.12/entrypoint.sh | 39 +++++++++++++++ linux/atlassian/confluence/6/6.13.13/.env | 3 ++ .../atlassian/confluence/6/6.13.13/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.13.13/Makefile | 5 ++ .../confluence/6/6.13.13/docker-compose.yml | 9 ++++ .../confluence/6/6.13.13/entrypoint.sh | 39 +++++++++++++++ linux/atlassian/confluence/6/6.13.15/.env | 3 ++ .../atlassian/confluence/6/6.13.15/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.13.15/Makefile | 5 ++ .../confluence/6/6.13.15/docker-compose.yml | 9 ++++ .../confluence/6/6.13.15/entrypoint.sh | 39 +++++++++++++++ linux/atlassian/confluence/6/6.13.17/.env | 3 ++ .../atlassian/confluence/6/6.13.17/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.13.17/Makefile | 5 ++ .../confluence/6/6.13.17/docker-compose.yml | 9 ++++ .../confluence/6/6.13.17/entrypoint.sh | 39 +++++++++++++++ linux/atlassian/confluence/6/6.13.18/.env | 3 ++ .../atlassian/confluence/6/6.13.18/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.13.18/Makefile | 5 ++ .../confluence/6/6.13.18/docker-compose.yml | 9 ++++ .../confluence/6/6.13.18/entrypoint.sh | 39 +++++++++++++++ linux/atlassian/confluence/6/6.13.19/.env | 3 ++ .../atlassian/confluence/6/6.13.19/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.13.19/Makefile | 5 ++ .../confluence/6/6.13.19/docker-compose.yml | 9 ++++ .../confluence/6/6.13.19/entrypoint.sh | 39 +++++++++++++++ linux/atlassian/confluence/6/6.13.2/.env | 3 ++ .../atlassian/confluence/6/6.13.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.2/Makefile | 7 +-- .../confluence/6/6.13.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.20/.env | 3 ++ .../atlassian/confluence/6/6.13.20/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.13.20/Makefile | 5 ++ .../confluence/6/6.13.20/docker-compose.yml | 9 ++++ .../confluence/6/6.13.20/entrypoint.sh | 39 +++++++++++++++ linux/atlassian/confluence/6/6.13.3/.env | 3 ++ .../atlassian/confluence/6/6.13.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.3/Makefile | 7 +-- .../confluence/6/6.13.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.4/.env | 3 ++ .../atlassian/confluence/6/6.13.4/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.4/Makefile | 7 +-- .../confluence/6/6.13.4/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.5/.env | 3 ++ .../atlassian/confluence/6/6.13.5/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.5/Makefile | 7 +-- .../confluence/6/6.13.5/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.6/.env | 3 ++ .../atlassian/confluence/6/6.13.6/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.6/Makefile | 7 +-- .../confluence/6/6.13.6/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.7/.env | 3 ++ .../atlassian/confluence/6/6.13.7/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.7/Makefile | 7 +-- .../confluence/6/6.13.7/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.8/.env | 3 ++ .../atlassian/confluence/6/6.13.8/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.8/Makefile | 7 +-- .../confluence/6/6.13.8/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.13.9/.env | 3 ++ .../atlassian/confluence/6/6.13.9/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.13.9/Makefile | 7 +-- .../confluence/6/6.13.9/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.14.0/.env | 3 ++ .../atlassian/confluence/6/6.14.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.14.0/Makefile | 7 +-- .../confluence/6/6.14.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.14.1/.env | 3 ++ .../atlassian/confluence/6/6.14.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.14.1/Makefile | 7 +-- .../confluence/6/6.14.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.14.2/.env | 3 ++ .../atlassian/confluence/6/6.14.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.14.2/Makefile | 7 +-- .../confluence/6/6.14.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.14.3/.env | 3 ++ .../atlassian/confluence/6/6.14.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.14.3/Makefile | 7 +-- .../confluence/6/6.14.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.15.1/.env | 3 ++ .../atlassian/confluence/6/6.15.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.15.1/Makefile | 7 +-- .../confluence/6/6.15.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.15.10/.env | 3 ++ .../atlassian/confluence/6/6.15.10/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.15.10/Makefile | 7 +-- .../confluence/6/6.15.10/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.15.2/.env | 3 ++ .../atlassian/confluence/6/6.15.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.15.2/Makefile | 7 +-- .../confluence/6/6.15.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.15.4/.env | 3 ++ .../atlassian/confluence/6/6.15.4/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.15.4/Makefile | 7 +-- .../confluence/6/6.15.4/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.15.6/.env | 3 ++ .../atlassian/confluence/6/6.15.6/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.15.6/Makefile | 7 +-- .../confluence/6/6.15.6/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.15.7/.env | 3 ++ .../atlassian/confluence/6/6.15.7/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.15.7/Makefile | 7 +-- .../confluence/6/6.15.7/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.15.8/.env | 3 ++ .../atlassian/confluence/6/6.15.8/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.15.8/Makefile | 7 +-- .../confluence/6/6.15.8/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.15.9/.env | 3 ++ .../atlassian/confluence/6/6.15.9/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.15.9/Makefile | 7 +-- .../confluence/6/6.15.9/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.2.0/.env | 3 ++ linux/atlassian/confluence/6/6.2.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.2.0/Makefile | 8 +-- .../confluence/6/6.2.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.2.1/.env | 3 ++ linux/atlassian/confluence/6/6.2.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.2.1/Makefile | 8 +-- .../confluence/6/6.2.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.2.2/.env | 3 ++ linux/atlassian/confluence/6/6.2.2/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.2.2/Makefile | 5 ++ .../confluence/6/6.2.2/docker-compose.yml | 9 ++++ .../confluence/6/6.2.2/entrypoint.sh | 39 +++++++++++++++ linux/atlassian/confluence/6/6.2.3/.env | 3 ++ linux/atlassian/confluence/6/6.2.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.2.3/Makefile | 8 +-- .../confluence/6/6.2.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.2.4/.env | 3 ++ linux/atlassian/confluence/6/6.2.4/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.2.4/Makefile | 8 +-- .../confluence/6/6.2.4/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.3.1/.env | 3 ++ linux/atlassian/confluence/6/6.3.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.3.1/Makefile | 8 +-- .../confluence/6/6.3.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.3.2/.env | 3 ++ linux/atlassian/confluence/6/6.3.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.3.2/Makefile | 8 +-- .../confluence/6/6.3.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.3.3/.env | 3 ++ linux/atlassian/confluence/6/6.3.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.3.3/Makefile | 8 +-- .../confluence/6/6.3.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.3.4/.env | 3 ++ linux/atlassian/confluence/6/6.3.4/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.3.4/Makefile | 8 +-- .../confluence/6/6.3.4/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.4.0/.env | 3 ++ linux/atlassian/confluence/6/6.4.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.4.0/Makefile | 8 +-- .../confluence/6/6.4.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.4.1/.env | 3 ++ linux/atlassian/confluence/6/6.4.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.4.1/Makefile | 8 +-- .../confluence/6/6.4.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.4.2/.env | 3 ++ linux/atlassian/confluence/6/6.4.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.4.2/Makefile | 8 +-- .../confluence/6/6.4.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.4.3/.env | 3 ++ linux/atlassian/confluence/6/6.4.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.4.3/Makefile | 8 +-- .../confluence/6/6.4.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.5.0/.env | 3 ++ linux/atlassian/confluence/6/6.5.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.5.0/Makefile | 8 +-- .../confluence/6/6.5.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.5.1/.env | 3 ++ linux/atlassian/confluence/6/6.5.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.5.1/Makefile | 8 +-- .../confluence/6/6.5.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.5.2/.env | 3 ++ linux/atlassian/confluence/6/6.5.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.5.2/Makefile | 8 +-- .../confluence/6/6.5.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.5.3/.env | 3 ++ linux/atlassian/confluence/6/6.5.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.5.3/Makefile | 8 +-- .../confluence/6/6.5.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.0/.env | 3 ++ linux/atlassian/confluence/6/6.6.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.0/Makefile | 8 +-- .../confluence/6/6.6.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.1/.env | 3 ++ linux/atlassian/confluence/6/6.6.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.1/Makefile | 8 +-- .../confluence/6/6.6.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.10/.env | 3 ++ .../atlassian/confluence/6/6.6.10/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.10/Makefile | 8 +-- .../confluence/6/6.6.10/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.11/.env | 3 ++ .../atlassian/confluence/6/6.6.11/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.11/Makefile | 8 +-- .../confluence/6/6.6.11/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.12/.env | 3 ++ .../atlassian/confluence/6/6.6.12/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.12/Makefile | 8 +-- .../confluence/6/6.6.12/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.13/.env | 3 ++ .../atlassian/confluence/6/6.6.13/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.13/Makefile | 8 +-- .../confluence/6/6.6.13/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.14/.env | 3 ++ .../atlassian/confluence/6/6.6.14/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.14/Makefile | 8 +-- .../confluence/6/6.6.14/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.15/.env | 3 ++ .../atlassian/confluence/6/6.6.15/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.15/Makefile | 8 +-- .../confluence/6/6.6.15/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.16/.env | 3 ++ .../atlassian/confluence/6/6.6.16/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.6.16/Makefile | 5 ++ .../confluence/6/6.6.16/docker-compose.yml | 9 ++++ .../confluence/6/6.6.16/entrypoint.sh | 39 +++++++++++++++ linux/atlassian/confluence/6/6.6.17/.env | 3 ++ .../atlassian/confluence/6/6.6.17/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.17/Makefile | 8 +-- .../confluence/6/6.6.17/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.2/.env | 3 ++ linux/atlassian/confluence/6/6.6.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.2/Makefile | 8 +-- .../confluence/6/6.6.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.3/.env | 3 ++ linux/atlassian/confluence/6/6.6.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.3/Makefile | 8 +-- .../confluence/6/6.6.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.4/.env | 3 ++ linux/atlassian/confluence/6/6.6.4/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.4/Makefile | 8 +-- .../confluence/6/6.6.4/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.5/.env | 3 ++ linux/atlassian/confluence/6/6.6.5/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.5/Makefile | 8 +-- .../confluence/6/6.6.5/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.6/.env | 3 ++ linux/atlassian/confluence/6/6.6.6/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.6/Makefile | 8 +-- .../confluence/6/6.6.6/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.7/.env | 3 ++ linux/atlassian/confluence/6/6.6.7/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.7/Makefile | 8 +-- .../confluence/6/6.6.7/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.8/.env | 3 ++ linux/atlassian/confluence/6/6.6.8/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.8/Makefile | 8 +-- .../confluence/6/6.6.8/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.6.9/.env | 3 ++ linux/atlassian/confluence/6/6.6.9/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.6.9/Makefile | 8 +-- .../confluence/6/6.6.9/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.7.0/.env | 3 ++ linux/atlassian/confluence/6/6.7.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.7.0/Makefile | 8 +-- .../confluence/6/6.7.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.7.1/.env | 3 ++ linux/atlassian/confluence/6/6.7.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.7.1/Makefile | 8 +-- .../confluence/6/6.7.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.7.2/.env | 3 ++ linux/atlassian/confluence/6/6.7.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.7.2/Makefile | 8 +-- .../confluence/6/6.7.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.7.3/.env | 3 ++ linux/atlassian/confluence/6/6.7.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.7.3/Makefile | 8 +-- .../confluence/6/6.7.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.8.0/.env | 3 ++ linux/atlassian/confluence/6/6.8.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.8.0/Makefile | 8 +-- .../confluence/6/6.8.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.8.1/.env | 3 ++ linux/atlassian/confluence/6/6.8.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.8.1/Makefile | 8 +-- .../confluence/6/6.8.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.8.2/.env | 3 ++ linux/atlassian/confluence/6/6.8.2/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.8.2/Makefile | 8 +-- .../confluence/6/6.8.2/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.8.3/.env | 3 ++ linux/atlassian/confluence/6/6.8.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.8.3/Makefile | 8 +-- .../confluence/6/6.8.3/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.8.5/.env | 3 ++ linux/atlassian/confluence/6/6.8.5/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.8.5/Makefile | 8 +-- .../confluence/6/6.8.5/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.9.0/.env | 3 ++ linux/atlassian/confluence/6/6.9.0/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.9.0/Makefile | 8 +-- .../confluence/6/6.9.0/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.9.1/.env | 3 ++ linux/atlassian/confluence/6/6.9.1/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.9.1/Makefile | 7 +-- .../confluence/6/6.9.1/docker-compose.yml | 9 ++++ linux/atlassian/confluence/6/6.9.3/.env | 3 ++ linux/atlassian/confluence/6/6.9.3/Dockerfile | 7 ++- linux/atlassian/confluence/6/6.9.3/Makefile | 7 +-- .../confluence/6/6.9.3/docker-compose.yml | 9 ++++ 417 files changed, 2898 insertions(+), 521 deletions(-) create mode 100644 linux/atlassian/confluence/6/6.0.1/.env create mode 100644 linux/atlassian/confluence/6/6.0.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.0.2/.env create mode 100644 linux/atlassian/confluence/6/6.0.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.0.3/.env create mode 100644 linux/atlassian/confluence/6/6.0.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.0.4/.env create mode 100644 linux/atlassian/confluence/6/6.0.4/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.0.5/.env create mode 100644 linux/atlassian/confluence/6/6.0.5/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.0.6/.env create mode 100644 linux/atlassian/confluence/6/6.0.6/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.0.7/.env create mode 100644 linux/atlassian/confluence/6/6.0.7/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.1.0/.env create mode 100644 linux/atlassian/confluence/6/6.1.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.1.1/.env create mode 100644 linux/atlassian/confluence/6/6.1.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.1.2/.env create mode 100644 linux/atlassian/confluence/6/6.1.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.1.3/.env create mode 100644 linux/atlassian/confluence/6/6.1.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.1.4/.env create mode 100644 linux/atlassian/confluence/6/6.1.4/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.10.0/.env create mode 100644 linux/atlassian/confluence/6/6.10.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.10.1/.env create mode 100644 linux/atlassian/confluence/6/6.10.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.10.2/.env create mode 100644 linux/atlassian/confluence/6/6.10.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.10.3/.env create mode 100644 linux/atlassian/confluence/6/6.10.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.11.0/.env create mode 100644 linux/atlassian/confluence/6/6.11.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.11.1/.env create mode 100644 linux/atlassian/confluence/6/6.11.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.11.2/.env create mode 100644 linux/atlassian/confluence/6/6.11.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.12.0/.env create mode 100644 linux/atlassian/confluence/6/6.12.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.12.1/.env create mode 100644 linux/atlassian/confluence/6/6.12.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.12.2/.env create mode 100644 linux/atlassian/confluence/6/6.12.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.12.3/.env create mode 100644 linux/atlassian/confluence/6/6.12.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.12.4/.env create mode 100644 linux/atlassian/confluence/6/6.12.4/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.0/.env create mode 100644 linux/atlassian/confluence/6/6.13.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.1/.env create mode 100644 linux/atlassian/confluence/6/6.13.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.10/.env create mode 100644 linux/atlassian/confluence/6/6.13.10/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.11/.env create mode 100644 linux/atlassian/confluence/6/6.13.11/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.12/.env create mode 100644 linux/atlassian/confluence/6/6.13.12/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.13.12/Makefile create mode 100644 linux/atlassian/confluence/6/6.13.12/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.12/entrypoint.sh create mode 100644 linux/atlassian/confluence/6/6.13.13/.env create mode 100644 linux/atlassian/confluence/6/6.13.13/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.13.13/Makefile create mode 100644 linux/atlassian/confluence/6/6.13.13/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.13/entrypoint.sh create mode 100644 linux/atlassian/confluence/6/6.13.15/.env create mode 100644 linux/atlassian/confluence/6/6.13.15/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.13.15/Makefile create mode 100644 linux/atlassian/confluence/6/6.13.15/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.15/entrypoint.sh create mode 100644 linux/atlassian/confluence/6/6.13.17/.env create mode 100644 linux/atlassian/confluence/6/6.13.17/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.13.17/Makefile create mode 100644 linux/atlassian/confluence/6/6.13.17/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.17/entrypoint.sh create mode 100644 linux/atlassian/confluence/6/6.13.18/.env create mode 100644 linux/atlassian/confluence/6/6.13.18/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.13.18/Makefile create mode 100644 linux/atlassian/confluence/6/6.13.18/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.18/entrypoint.sh create mode 100644 linux/atlassian/confluence/6/6.13.19/.env create mode 100644 linux/atlassian/confluence/6/6.13.19/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.13.19/Makefile create mode 100644 linux/atlassian/confluence/6/6.13.19/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.19/entrypoint.sh create mode 100644 linux/atlassian/confluence/6/6.13.2/.env create mode 100644 linux/atlassian/confluence/6/6.13.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.20/.env create mode 100644 linux/atlassian/confluence/6/6.13.20/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.13.20/Makefile create mode 100644 linux/atlassian/confluence/6/6.13.20/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.20/entrypoint.sh create mode 100644 linux/atlassian/confluence/6/6.13.3/.env create mode 100644 linux/atlassian/confluence/6/6.13.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.4/.env create mode 100644 linux/atlassian/confluence/6/6.13.4/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.5/.env create mode 100644 linux/atlassian/confluence/6/6.13.5/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.6/.env create mode 100644 linux/atlassian/confluence/6/6.13.6/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.7/.env create mode 100644 linux/atlassian/confluence/6/6.13.7/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.8/.env create mode 100644 linux/atlassian/confluence/6/6.13.8/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.9/.env create mode 100644 linux/atlassian/confluence/6/6.13.9/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.14.0/.env create mode 100644 linux/atlassian/confluence/6/6.14.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.14.1/.env create mode 100644 linux/atlassian/confluence/6/6.14.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.14.2/.env create mode 100644 linux/atlassian/confluence/6/6.14.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.14.3/.env create mode 100644 linux/atlassian/confluence/6/6.14.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.15.1/.env create mode 100644 linux/atlassian/confluence/6/6.15.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.15.10/.env create mode 100644 linux/atlassian/confluence/6/6.15.10/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.15.2/.env create mode 100644 linux/atlassian/confluence/6/6.15.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.15.4/.env create mode 100644 linux/atlassian/confluence/6/6.15.4/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.15.6/.env create mode 100644 linux/atlassian/confluence/6/6.15.6/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.15.7/.env create mode 100644 linux/atlassian/confluence/6/6.15.7/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.15.8/.env create mode 100644 linux/atlassian/confluence/6/6.15.8/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.15.9/.env create mode 100644 linux/atlassian/confluence/6/6.15.9/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.2.0/.env create mode 100644 linux/atlassian/confluence/6/6.2.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.2.1/.env create mode 100644 linux/atlassian/confluence/6/6.2.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.2.2/.env create mode 100644 linux/atlassian/confluence/6/6.2.2/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.2.2/Makefile create mode 100644 linux/atlassian/confluence/6/6.2.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.2.2/entrypoint.sh create mode 100644 linux/atlassian/confluence/6/6.2.3/.env create mode 100644 linux/atlassian/confluence/6/6.2.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.2.4/.env create mode 100644 linux/atlassian/confluence/6/6.2.4/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.3.1/.env create mode 100644 linux/atlassian/confluence/6/6.3.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.3.2/.env create mode 100644 linux/atlassian/confluence/6/6.3.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.3.3/.env create mode 100644 linux/atlassian/confluence/6/6.3.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.3.4/.env create mode 100644 linux/atlassian/confluence/6/6.3.4/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.4.0/.env create mode 100644 linux/atlassian/confluence/6/6.4.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.4.1/.env create mode 100644 linux/atlassian/confluence/6/6.4.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.4.2/.env create mode 100644 linux/atlassian/confluence/6/6.4.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.4.3/.env create mode 100644 linux/atlassian/confluence/6/6.4.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.5.0/.env create mode 100644 linux/atlassian/confluence/6/6.5.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.5.1/.env create mode 100644 linux/atlassian/confluence/6/6.5.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.5.2/.env create mode 100644 linux/atlassian/confluence/6/6.5.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.5.3/.env create mode 100644 linux/atlassian/confluence/6/6.5.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.0/.env create mode 100644 linux/atlassian/confluence/6/6.6.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.1/.env create mode 100644 linux/atlassian/confluence/6/6.6.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.10/.env create mode 100644 linux/atlassian/confluence/6/6.6.10/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.11/.env create mode 100644 linux/atlassian/confluence/6/6.6.11/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.12/.env create mode 100644 linux/atlassian/confluence/6/6.6.12/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.13/.env create mode 100644 linux/atlassian/confluence/6/6.6.13/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.14/.env create mode 100644 linux/atlassian/confluence/6/6.6.14/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.15/.env create mode 100644 linux/atlassian/confluence/6/6.6.15/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.16/.env create mode 100644 linux/atlassian/confluence/6/6.6.16/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.6.16/Makefile create mode 100644 linux/atlassian/confluence/6/6.6.16/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.16/entrypoint.sh create mode 100644 linux/atlassian/confluence/6/6.6.17/.env create mode 100644 linux/atlassian/confluence/6/6.6.17/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.2/.env create mode 100644 linux/atlassian/confluence/6/6.6.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.3/.env create mode 100644 linux/atlassian/confluence/6/6.6.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.4/.env create mode 100644 linux/atlassian/confluence/6/6.6.4/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.5/.env create mode 100644 linux/atlassian/confluence/6/6.6.5/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.6/.env create mode 100644 linux/atlassian/confluence/6/6.6.6/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.7/.env create mode 100644 linux/atlassian/confluence/6/6.6.7/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.8/.env create mode 100644 linux/atlassian/confluence/6/6.6.8/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.6.9/.env create mode 100644 linux/atlassian/confluence/6/6.6.9/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.7.0/.env create mode 100644 linux/atlassian/confluence/6/6.7.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.7.1/.env create mode 100644 linux/atlassian/confluence/6/6.7.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.7.2/.env create mode 100644 linux/atlassian/confluence/6/6.7.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.7.3/.env create mode 100644 linux/atlassian/confluence/6/6.7.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.8.0/.env create mode 100644 linux/atlassian/confluence/6/6.8.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.8.1/.env create mode 100644 linux/atlassian/confluence/6/6.8.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.8.2/.env create mode 100644 linux/atlassian/confluence/6/6.8.2/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.8.3/.env create mode 100644 linux/atlassian/confluence/6/6.8.3/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.8.5/.env create mode 100644 linux/atlassian/confluence/6/6.8.5/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.9.0/.env create mode 100644 linux/atlassian/confluence/6/6.9.0/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.9.1/.env create mode 100644 linux/atlassian/confluence/6/6.9.1/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.9.3/.env create mode 100644 linux/atlassian/confluence/6/6.9.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.0.1/.env b/linux/atlassian/confluence/6/6.0.1/.env new file mode 100644 index 000000000..ecd7bb585 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.0.1/Dockerfile b/linux/atlassian/confluence/6/6.0.1/Dockerfile index 60a125dfc..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.0.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.0.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.0.1/Makefile b/linux/atlassian/confluence/6/6.0.1/Makefile index 54e5248ee..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.0.1/Makefile +++ b/linux/atlassian/confluence/6/6.0.1/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.1 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.0.1/docker-compose.yml b/linux/atlassian/confluence/6/6.0.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2/.env b/linux/atlassian/confluence/6/6.0.2/.env new file mode 100644 index 000000000..19ab3b392 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.0.2/Dockerfile b/linux/atlassian/confluence/6/6.0.2/Dockerfile index 5d6a9c22f..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.0.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.0.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.0.2/Makefile b/linux/atlassian/confluence/6/6.0.2/Makefile index bf0b01cd0..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.0.2/Makefile +++ b/linux/atlassian/confluence/6/6.0.2/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.2 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.0.2/docker-compose.yml b/linux/atlassian/confluence/6/6.0.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.3/.env b/linux/atlassian/confluence/6/6.0.3/.env new file mode 100644 index 000000000..f6b5a835a --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.0.3/Dockerfile b/linux/atlassian/confluence/6/6.0.3/Dockerfile index 477bff4c3..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.0.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.0.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.0.3/Makefile b/linux/atlassian/confluence/6/6.0.3/Makefile index 600150ad2..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.0.3/Makefile +++ b/linux/atlassian/confluence/6/6.0.3/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.3 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.0.3/docker-compose.yml b/linux/atlassian/confluence/6/6.0.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.4/.env b/linux/atlassian/confluence/6/6.0.4/.env new file mode 100644 index 000000000..038f10825 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.0.4/Dockerfile b/linux/atlassian/confluence/6/6.0.4/Dockerfile index 67f277e57..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.0.4/Dockerfile +++ b/linux/atlassian/confluence/6/6.0.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.0.4/Makefile b/linux/atlassian/confluence/6/6.0.4/Makefile index 295c8f338..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.0.4/Makefile +++ b/linux/atlassian/confluence/6/6.0.4/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.4 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.0.4/docker-compose.yml b/linux/atlassian/confluence/6/6.0.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.5/.env b/linux/atlassian/confluence/6/6.0.5/.env new file mode 100644 index 000000000..bd78d49be --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.0.5/Dockerfile b/linux/atlassian/confluence/6/6.0.5/Dockerfile index 7402d12b4..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.0.5/Dockerfile +++ b/linux/atlassian/confluence/6/6.0.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.0.5/Makefile b/linux/atlassian/confluence/6/6.0.5/Makefile index df010b00f..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.0.5/Makefile +++ b/linux/atlassian/confluence/6/6.0.5/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.5 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.0.5/docker-compose.yml b/linux/atlassian/confluence/6/6.0.5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6/.env b/linux/atlassian/confluence/6/6.0.6/.env new file mode 100644 index 000000000..87e9de1bd --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.0.6/Dockerfile b/linux/atlassian/confluence/6/6.0.6/Dockerfile index 54aab7128..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.0.6/Dockerfile +++ b/linux/atlassian/confluence/6/6.0.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.0.6/Makefile b/linux/atlassian/confluence/6/6.0.6/Makefile index 415f855d5..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.0.6/Makefile +++ b/linux/atlassian/confluence/6/6.0.6/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.6 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.0.6/docker-compose.yml b/linux/atlassian/confluence/6/6.0.6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.7/.env b/linux/atlassian/confluence/6/6.0.7/.env new file mode 100644 index 000000000..48b03065a --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.0.7/Dockerfile b/linux/atlassian/confluence/6/6.0.7/Dockerfile index 62a0c388c..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.0.7/Dockerfile +++ b/linux/atlassian/confluence/6/6.0.7/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.0.7/Makefile b/linux/atlassian/confluence/6/6.0.7/Makefile index 319483387..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.0.7/Makefile +++ b/linux/atlassian/confluence/6/6.0.7/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.0.7 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.0.7/docker-compose.yml b/linux/atlassian/confluence/6/6.0.7/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.1.0/.env b/linux/atlassian/confluence/6/6.1.0/.env new file mode 100644 index 000000000..d2a458f34 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.1.0/Dockerfile b/linux/atlassian/confluence/6/6.1.0/Dockerfile index 9e5c98eb9..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.1.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.1.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.1.0/Makefile b/linux/atlassian/confluence/6/6.1.0/Makefile index a85eda5df..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.1.0/Makefile +++ b/linux/atlassian/confluence/6/6.1.0/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.0 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.1.0/docker-compose.yml b/linux/atlassian/confluence/6/6.1.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.1/.env b/linux/atlassian/confluence/6/6.1.1/.env new file mode 100644 index 000000000..283c5b3af --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.1.1/Dockerfile b/linux/atlassian/confluence/6/6.1.1/Dockerfile index 66b185a7e..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.1.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.1.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.1.1/Makefile b/linux/atlassian/confluence/6/6.1.1/Makefile index 79cbcdbfb..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.1.1/Makefile +++ b/linux/atlassian/confluence/6/6.1.1/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.1 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.1.1/docker-compose.yml b/linux/atlassian/confluence/6/6.1.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2/.env b/linux/atlassian/confluence/6/6.1.2/.env new file mode 100644 index 000000000..09c8d5557 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.1.2/Dockerfile b/linux/atlassian/confluence/6/6.1.2/Dockerfile index 1a8620f8d..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.1.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.1.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.1.2/Makefile b/linux/atlassian/confluence/6/6.1.2/Makefile index 384fecef4..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.1.2/Makefile +++ b/linux/atlassian/confluence/6/6.1.2/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.2 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.1.2/docker-compose.yml b/linux/atlassian/confluence/6/6.1.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.3/.env b/linux/atlassian/confluence/6/6.1.3/.env new file mode 100644 index 000000000..1cef7250f --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.1.3/Dockerfile b/linux/atlassian/confluence/6/6.1.3/Dockerfile index 8bde4a010..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.1.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.1.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.1.3/Makefile b/linux/atlassian/confluence/6/6.1.3/Makefile index 5123e62e9..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.1.3/Makefile +++ b/linux/atlassian/confluence/6/6.1.3/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.3 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.1.3/docker-compose.yml b/linux/atlassian/confluence/6/6.1.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.4/.env b/linux/atlassian/confluence/6/6.1.4/.env new file mode 100644 index 000000000..dcd508b9b --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.1.4/Dockerfile b/linux/atlassian/confluence/6/6.1.4/Dockerfile index 57b685395..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.1.4/Dockerfile +++ b/linux/atlassian/confluence/6/6.1.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.1.4/Makefile b/linux/atlassian/confluence/6/6.1.4/Makefile index 06c417023..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.1.4/Makefile +++ b/linux/atlassian/confluence/6/6.1.4/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.1.4 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.1.4/docker-compose.yml b/linux/atlassian/confluence/6/6.1.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.10.0/.env b/linux/atlassian/confluence/6/6.10.0/.env new file mode 100644 index 000000000..7597c1a01 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.10.0/Dockerfile b/linux/atlassian/confluence/6/6.10.0/Dockerfile index 4ad1fde3c..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.10.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.10.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.10.0/Makefile b/linux/atlassian/confluence/6/6.10.0/Makefile index 51889d9ce..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.10.0/Makefile +++ b/linux/atlassian/confluence/6/6.10.0/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.10.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.10.0/docker-compose.yml b/linux/atlassian/confluence/6/6.10.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.1/.env b/linux/atlassian/confluence/6/6.10.1/.env new file mode 100644 index 000000000..1d8045327 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.10.1/Dockerfile b/linux/atlassian/confluence/6/6.10.1/Dockerfile index 03804167e..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.10.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.10.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.10.1/Makefile b/linux/atlassian/confluence/6/6.10.1/Makefile index 2075e3608..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.10.1/Makefile +++ b/linux/atlassian/confluence/6/6.10.1/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.10.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.10.1/docker-compose.yml b/linux/atlassian/confluence/6/6.10.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2/.env b/linux/atlassian/confluence/6/6.10.2/.env new file mode 100644 index 000000000..8af54d091 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.10.2/Dockerfile b/linux/atlassian/confluence/6/6.10.2/Dockerfile index b7a0eabd0..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.10.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.10.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.10.2/Makefile b/linux/atlassian/confluence/6/6.10.2/Makefile index 1e0cf78ce..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.10.2/Makefile +++ b/linux/atlassian/confluence/6/6.10.2/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.10.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.10.2/docker-compose.yml b/linux/atlassian/confluence/6/6.10.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.3/.env b/linux/atlassian/confluence/6/6.10.3/.env new file mode 100644 index 000000000..84c40b316 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.10.3/Dockerfile b/linux/atlassian/confluence/6/6.10.3/Dockerfile index 0f996919e..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.10.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.10.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.10.3/Makefile b/linux/atlassian/confluence/6/6.10.3/Makefile index 3efab142b..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.10.3/Makefile +++ b/linux/atlassian/confluence/6/6.10.3/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.10.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.10.3/docker-compose.yml b/linux/atlassian/confluence/6/6.10.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.11.0/.env b/linux/atlassian/confluence/6/6.11.0/.env new file mode 100644 index 000000000..dfc8f71f0 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.11.0/Dockerfile b/linux/atlassian/confluence/6/6.11.0/Dockerfile index a398499dc..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.11.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.11.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.11.0/Makefile b/linux/atlassian/confluence/6/6.11.0/Makefile index 91ac02ec4..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.11.0/Makefile +++ b/linux/atlassian/confluence/6/6.11.0/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.11.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.11.0/docker-compose.yml b/linux/atlassian/confluence/6/6.11.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.1/.env b/linux/atlassian/confluence/6/6.11.1/.env new file mode 100644 index 000000000..30cf0836b --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.11.1/Dockerfile b/linux/atlassian/confluence/6/6.11.1/Dockerfile index b9f04c9fa..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.11.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.11.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.11.1/Makefile b/linux/atlassian/confluence/6/6.11.1/Makefile index 91b13f5a3..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.11.1/Makefile +++ b/linux/atlassian/confluence/6/6.11.1/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.11.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.11.1/docker-compose.yml b/linux/atlassian/confluence/6/6.11.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2/.env b/linux/atlassian/confluence/6/6.11.2/.env new file mode 100644 index 000000000..addc1e4c3 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.11.2/Dockerfile b/linux/atlassian/confluence/6/6.11.2/Dockerfile index 68b11e92e..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.11.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.11.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.11.2/Makefile b/linux/atlassian/confluence/6/6.11.2/Makefile index 33190fa54..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.11.2/Makefile +++ b/linux/atlassian/confluence/6/6.11.2/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.11.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.11.2/docker-compose.yml b/linux/atlassian/confluence/6/6.11.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.12.0/.env b/linux/atlassian/confluence/6/6.12.0/.env new file mode 100644 index 000000000..4f0b1a0e2 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.12.0/Dockerfile b/linux/atlassian/confluence/6/6.12.0/Dockerfile index 1dc6fad00..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.12.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.12.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.12.0/Makefile b/linux/atlassian/confluence/6/6.12.0/Makefile index 8cda2e8c5..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.12.0/Makefile +++ b/linux/atlassian/confluence/6/6.12.0/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.12.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.12.0/docker-compose.yml b/linux/atlassian/confluence/6/6.12.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.1/.env b/linux/atlassian/confluence/6/6.12.1/.env new file mode 100644 index 000000000..f62fa52bd --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.12.1/Dockerfile b/linux/atlassian/confluence/6/6.12.1/Dockerfile index 4bbf92616..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.12.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.12.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.12.1/Makefile b/linux/atlassian/confluence/6/6.12.1/Makefile index 0c8f696cd..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.12.1/Makefile +++ b/linux/atlassian/confluence/6/6.12.1/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.12.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.12.1/docker-compose.yml b/linux/atlassian/confluence/6/6.12.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2/.env b/linux/atlassian/confluence/6/6.12.2/.env new file mode 100644 index 000000000..05734d6e7 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.12.2/Dockerfile b/linux/atlassian/confluence/6/6.12.2/Dockerfile index 5371f2910..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.12.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.12.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.12.2/Makefile b/linux/atlassian/confluence/6/6.12.2/Makefile index 816ec3bd7..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.12.2/Makefile +++ b/linux/atlassian/confluence/6/6.12.2/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.12.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.12.2/docker-compose.yml b/linux/atlassian/confluence/6/6.12.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.3/.env b/linux/atlassian/confluence/6/6.12.3/.env new file mode 100644 index 000000000..ef62b7f81 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.12.3/Dockerfile b/linux/atlassian/confluence/6/6.12.3/Dockerfile index 754b5b423..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.12.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.12.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.12.3/Makefile b/linux/atlassian/confluence/6/6.12.3/Makefile index bcc05628a..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.12.3/Makefile +++ b/linux/atlassian/confluence/6/6.12.3/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.12.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.12.3/docker-compose.yml b/linux/atlassian/confluence/6/6.12.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.4/.env b/linux/atlassian/confluence/6/6.12.4/.env new file mode 100644 index 000000000..73e973274 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.12.4/Dockerfile b/linux/atlassian/confluence/6/6.12.4/Dockerfile index e19663666..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.12.4/Dockerfile +++ b/linux/atlassian/confluence/6/6.12.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.12.4/Makefile b/linux/atlassian/confluence/6/6.12.4/Makefile index 48b1ff9b2..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.12.4/Makefile +++ b/linux/atlassian/confluence/6/6.12.4/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.12.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.12.4/docker-compose.yml b/linux/atlassian/confluence/6/6.12.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13.0/.env b/linux/atlassian/confluence/6/6.13.0/.env new file mode 100644 index 000000000..b65d7830f --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.0/Dockerfile b/linux/atlassian/confluence/6/6.13.0/Dockerfile index ccb8e85b9..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.0/Makefile b/linux/atlassian/confluence/6/6.13.0/Makefile index bef0eb44c..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.0/Makefile +++ b/linux/atlassian/confluence/6/6.13.0/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.0/docker-compose.yml b/linux/atlassian/confluence/6/6.13.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.1/.env b/linux/atlassian/confluence/6/6.13.1/.env new file mode 100644 index 000000000..cfcc9bc6c --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.1/Dockerfile b/linux/atlassian/confluence/6/6.13.1/Dockerfile index d443befb1..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.1/Makefile b/linux/atlassian/confluence/6/6.13.1/Makefile index 59ba9a277..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.1/Makefile +++ b/linux/atlassian/confluence/6/6.13.1/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.1/docker-compose.yml b/linux/atlassian/confluence/6/6.13.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.10/.env b/linux/atlassian/confluence/6/6.13.10/.env new file mode 100644 index 000000000..5bfc2adb3 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.10/Dockerfile b/linux/atlassian/confluence/6/6.13.10/Dockerfile index 819172b1e..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.10/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.10/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.10/Makefile b/linux/atlassian/confluence/6/6.13.10/Makefile index ae06f9246..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.10/Makefile +++ b/linux/atlassian/confluence/6/6.13.10/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.10 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.10/docker-compose.yml b/linux/atlassian/confluence/6/6.13.10/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.11/.env b/linux/atlassian/confluence/6/6.13.11/.env new file mode 100644 index 000000000..981b1cca6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.11/Dockerfile b/linux/atlassian/confluence/6/6.13.11/Dockerfile index 9f2dec9ed..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.11/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.11/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.11/Makefile b/linux/atlassian/confluence/6/6.13.11/Makefile index 01b6b55e6..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.11/Makefile +++ b/linux/atlassian/confluence/6/6.13.11/Makefile @@ -1,5 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.11 . - docker push epicmorg/confluence:6.13.11 +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.11/docker-compose.yml b/linux/atlassian/confluence/6/6.13.11/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.12/.env b/linux/atlassian/confluence/6/6.13.12/.env new file mode 100644 index 000000000..1b88ce797 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.12/Dockerfile b/linux/atlassian/confluence/6/6.13.12/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.12/Makefile b/linux/atlassian/confluence/6/6.13.12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.12/docker-compose.yml b/linux/atlassian/confluence/6/6.13.12/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.12/entrypoint.sh b/linux/atlassian/confluence/6/6.13.12/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.13.12/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/6/6.13.13/.env b/linux/atlassian/confluence/6/6.13.13/.env new file mode 100644 index 000000000..2413a6b69 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.13/Dockerfile b/linux/atlassian/confluence/6/6.13.13/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.13/Makefile b/linux/atlassian/confluence/6/6.13.13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.13/docker-compose.yml b/linux/atlassian/confluence/6/6.13.13/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13/entrypoint.sh b/linux/atlassian/confluence/6/6.13.13/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.13.13/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/6/6.13.15/.env b/linux/atlassian/confluence/6/6.13.15/.env new file mode 100644 index 000000000..bfb7c3517 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.15/Dockerfile b/linux/atlassian/confluence/6/6.13.15/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.15/Makefile b/linux/atlassian/confluence/6/6.13.15/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.15/docker-compose.yml b/linux/atlassian/confluence/6/6.13.15/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.15/entrypoint.sh b/linux/atlassian/confluence/6/6.13.15/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.13.15/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/6/6.13.17/.env b/linux/atlassian/confluence/6/6.13.17/.env new file mode 100644 index 000000000..4105da19e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.17/Dockerfile b/linux/atlassian/confluence/6/6.13.17/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.17/Makefile b/linux/atlassian/confluence/6/6.13.17/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.17/docker-compose.yml b/linux/atlassian/confluence/6/6.13.17/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.17/entrypoint.sh b/linux/atlassian/confluence/6/6.13.17/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.13.17/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/6/6.13.18/.env b/linux/atlassian/confluence/6/6.13.18/.env new file mode 100644 index 000000000..5ea664f78 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.18/Dockerfile b/linux/atlassian/confluence/6/6.13.18/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.18/Makefile b/linux/atlassian/confluence/6/6.13.18/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.18/docker-compose.yml b/linux/atlassian/confluence/6/6.13.18/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.18/entrypoint.sh b/linux/atlassian/confluence/6/6.13.18/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.13.18/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/6/6.13.19/.env b/linux/atlassian/confluence/6/6.13.19/.env new file mode 100644 index 000000000..d65140659 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.19/Dockerfile b/linux/atlassian/confluence/6/6.13.19/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.19/Makefile b/linux/atlassian/confluence/6/6.13.19/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.19/docker-compose.yml b/linux/atlassian/confluence/6/6.13.19/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.19/entrypoint.sh b/linux/atlassian/confluence/6/6.13.19/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.13.19/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/6/6.13.2/.env b/linux/atlassian/confluence/6/6.13.2/.env new file mode 100644 index 000000000..68db04d3e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.2/Dockerfile b/linux/atlassian/confluence/6/6.13.2/Dockerfile index d70d32f7e..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.2/Makefile b/linux/atlassian/confluence/6/6.13.2/Makefile index 0d0a349b3..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.2/Makefile +++ b/linux/atlassian/confluence/6/6.13.2/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.2/docker-compose.yml b/linux/atlassian/confluence/6/6.13.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.20/.env b/linux/atlassian/confluence/6/6.13.20/.env new file mode 100644 index 000000000..096ae154e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.20/Dockerfile b/linux/atlassian/confluence/6/6.13.20/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.20/Makefile b/linux/atlassian/confluence/6/6.13.20/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.20/docker-compose.yml b/linux/atlassian/confluence/6/6.13.20/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.20/entrypoint.sh b/linux/atlassian/confluence/6/6.13.20/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.13.20/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/6/6.13.3/.env b/linux/atlassian/confluence/6/6.13.3/.env new file mode 100644 index 000000000..145f9f2ba --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.3/Dockerfile b/linux/atlassian/confluence/6/6.13.3/Dockerfile index 9b3339a01..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.3/Makefile b/linux/atlassian/confluence/6/6.13.3/Makefile index b5dd0c1af..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.3/Makefile +++ b/linux/atlassian/confluence/6/6.13.3/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.3/docker-compose.yml b/linux/atlassian/confluence/6/6.13.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13.4/.env b/linux/atlassian/confluence/6/6.13.4/.env new file mode 100644 index 000000000..9988fa30a --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.4/Dockerfile b/linux/atlassian/confluence/6/6.13.4/Dockerfile index 754b6e94f..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.4/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.4/Makefile b/linux/atlassian/confluence/6/6.13.4/Makefile index 151d74550..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.4/Makefile +++ b/linux/atlassian/confluence/6/6.13.4/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.4/docker-compose.yml b/linux/atlassian/confluence/6/6.13.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13.5/.env b/linux/atlassian/confluence/6/6.13.5/.env new file mode 100644 index 000000000..9b9d4721a --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.5/Dockerfile b/linux/atlassian/confluence/6/6.13.5/Dockerfile index a3a26f6c1..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.5/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.5/Makefile b/linux/atlassian/confluence/6/6.13.5/Makefile index 51b8004b9..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.5/Makefile +++ b/linux/atlassian/confluence/6/6.13.5/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.5 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.5/docker-compose.yml b/linux/atlassian/confluence/6/6.13.5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13.6/.env b/linux/atlassian/confluence/6/6.13.6/.env new file mode 100644 index 000000000..c002c4867 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.6/Dockerfile b/linux/atlassian/confluence/6/6.13.6/Dockerfile index e7ddfccfd..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.6/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.6/Makefile b/linux/atlassian/confluence/6/6.13.6/Makefile index f97a67aac..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.6/Makefile +++ b/linux/atlassian/confluence/6/6.13.6/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.6 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.6/docker-compose.yml b/linux/atlassian/confluence/6/6.13.6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13.7/.env b/linux/atlassian/confluence/6/6.13.7/.env new file mode 100644 index 000000000..179f1eb06 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.7/Dockerfile b/linux/atlassian/confluence/6/6.13.7/Dockerfile index ec43a52b7..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.7/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.7/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.7/Makefile b/linux/atlassian/confluence/6/6.13.7/Makefile index 67ea1401b..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.7/Makefile +++ b/linux/atlassian/confluence/6/6.13.7/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.7 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.7/docker-compose.yml b/linux/atlassian/confluence/6/6.13.7/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13.8/.env b/linux/atlassian/confluence/6/6.13.8/.env new file mode 100644 index 000000000..a9b55e9ad --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.8/Dockerfile b/linux/atlassian/confluence/6/6.13.8/Dockerfile index f31478c3f..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.8/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.8/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.8/Makefile b/linux/atlassian/confluence/6/6.13.8/Makefile index 40f704f85..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.8/Makefile +++ b/linux/atlassian/confluence/6/6.13.8/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.8 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.8/docker-compose.yml b/linux/atlassian/confluence/6/6.13.8/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13.9/.env b/linux/atlassian/confluence/6/6.13.9/.env new file mode 100644 index 000000000..5144ea9d9 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.9/Dockerfile b/linux/atlassian/confluence/6/6.13.9/Dockerfile index 23d27cfbd..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.13.9/Dockerfile +++ b/linux/atlassian/confluence/6/6.13.9/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.13.9/Makefile b/linux/atlassian/confluence/6/6.13.9/Makefile index 123908ce1..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.13.9/Makefile +++ b/linux/atlassian/confluence/6/6.13.9/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.13.9 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.13.9/docker-compose.yml b/linux/atlassian/confluence/6/6.13.9/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.14.0/.env b/linux/atlassian/confluence/6/6.14.0/.env new file mode 100644 index 000000000..09182cd6d --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.14.0/Dockerfile b/linux/atlassian/confluence/6/6.14.0/Dockerfile index 75528b59f..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.14.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.14.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.14.0/Makefile b/linux/atlassian/confluence/6/6.14.0/Makefile index a108c8aac..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.14.0/Makefile +++ b/linux/atlassian/confluence/6/6.14.0/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.14.0 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.14.0/docker-compose.yml b/linux/atlassian/confluence/6/6.14.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.14.1/.env b/linux/atlassian/confluence/6/6.14.1/.env new file mode 100644 index 000000000..9fba158cb --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.14.1/Dockerfile b/linux/atlassian/confluence/6/6.14.1/Dockerfile index 1afce19ac..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.14.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.14.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.14.1/Makefile b/linux/atlassian/confluence/6/6.14.1/Makefile index 10c887145..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.14.1/Makefile +++ b/linux/atlassian/confluence/6/6.14.1/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.14.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.14.1/docker-compose.yml b/linux/atlassian/confluence/6/6.14.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.14.2/.env b/linux/atlassian/confluence/6/6.14.2/.env new file mode 100644 index 000000000..58ca325d9 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.14.2/Dockerfile b/linux/atlassian/confluence/6/6.14.2/Dockerfile index 9c09f9aa0..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.14.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.14.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.14.2/Makefile b/linux/atlassian/confluence/6/6.14.2/Makefile index 20d0be562..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.14.2/Makefile +++ b/linux/atlassian/confluence/6/6.14.2/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.14.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.14.2/docker-compose.yml b/linux/atlassian/confluence/6/6.14.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.14.3/.env b/linux/atlassian/confluence/6/6.14.3/.env new file mode 100644 index 000000000..9656268ed --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.14.3/Dockerfile b/linux/atlassian/confluence/6/6.14.3/Dockerfile index 09045771f..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.14.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.14.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.14.3/Makefile b/linux/atlassian/confluence/6/6.14.3/Makefile index 64d461d63..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.14.3/Makefile +++ b/linux/atlassian/confluence/6/6.14.3/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.14.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.14.3/docker-compose.yml b/linux/atlassian/confluence/6/6.14.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.1/.env b/linux/atlassian/confluence/6/6.15.1/.env new file mode 100644 index 000000000..88c23614e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.15.1/Dockerfile b/linux/atlassian/confluence/6/6.15.1/Dockerfile index b4760d22a..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.15.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.15.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.15.1/Makefile b/linux/atlassian/confluence/6/6.15.1/Makefile index 8562af6a9..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.15.1/Makefile +++ b/linux/atlassian/confluence/6/6.15.1/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.15.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.15.1/docker-compose.yml b/linux/atlassian/confluence/6/6.15.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.15.10/.env b/linux/atlassian/confluence/6/6.15.10/.env new file mode 100644 index 000000000..bc840adbd --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.15.10/Dockerfile b/linux/atlassian/confluence/6/6.15.10/Dockerfile index 390873ab3..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.15.10/Dockerfile +++ b/linux/atlassian/confluence/6/6.15.10/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.15.10/Makefile b/linux/atlassian/confluence/6/6.15.10/Makefile index ac511814c..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.15.10/Makefile +++ b/linux/atlassian/confluence/6/6.15.10/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.15.10 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.15.10/docker-compose.yml b/linux/atlassian/confluence/6/6.15.10/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.15.2/.env b/linux/atlassian/confluence/6/6.15.2/.env new file mode 100644 index 000000000..bf60686a8 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.15.2/Dockerfile b/linux/atlassian/confluence/6/6.15.2/Dockerfile index 8f3f731e4..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.15.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.15.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.15.2/Makefile b/linux/atlassian/confluence/6/6.15.2/Makefile index 49f7f4b47..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.15.2/Makefile +++ b/linux/atlassian/confluence/6/6.15.2/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.15.2 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.15.2/docker-compose.yml b/linux/atlassian/confluence/6/6.15.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.15.4/.env b/linux/atlassian/confluence/6/6.15.4/.env new file mode 100644 index 000000000..9b18513bb --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.15.4/Dockerfile b/linux/atlassian/confluence/6/6.15.4/Dockerfile index bd22b9524..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.15.4/Dockerfile +++ b/linux/atlassian/confluence/6/6.15.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.15.4/Makefile b/linux/atlassian/confluence/6/6.15.4/Makefile index b578eca08..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.15.4/Makefile +++ b/linux/atlassian/confluence/6/6.15.4/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.15.4 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.15.4/docker-compose.yml b/linux/atlassian/confluence/6/6.15.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.15.6/.env b/linux/atlassian/confluence/6/6.15.6/.env new file mode 100644 index 000000000..d609b17a0 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.15.6/Dockerfile b/linux/atlassian/confluence/6/6.15.6/Dockerfile index 7ded10ca3..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.15.6/Dockerfile +++ b/linux/atlassian/confluence/6/6.15.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.15.6/Makefile b/linux/atlassian/confluence/6/6.15.6/Makefile index 960c9cff3..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.15.6/Makefile +++ b/linux/atlassian/confluence/6/6.15.6/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.15.6 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.15.6/docker-compose.yml b/linux/atlassian/confluence/6/6.15.6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.15.7/.env b/linux/atlassian/confluence/6/6.15.7/.env new file mode 100644 index 000000000..bf91194e6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.15.7/Dockerfile b/linux/atlassian/confluence/6/6.15.7/Dockerfile index fd475818d..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.15.7/Dockerfile +++ b/linux/atlassian/confluence/6/6.15.7/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.15.7/Makefile b/linux/atlassian/confluence/6/6.15.7/Makefile index c0d45c8e4..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.15.7/Makefile +++ b/linux/atlassian/confluence/6/6.15.7/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.15.7 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.15.7/docker-compose.yml b/linux/atlassian/confluence/6/6.15.7/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.15.8/.env b/linux/atlassian/confluence/6/6.15.8/.env new file mode 100644 index 000000000..55abf8ab9 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.15.8/Dockerfile b/linux/atlassian/confluence/6/6.15.8/Dockerfile index 88eb7769b..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.15.8/Dockerfile +++ b/linux/atlassian/confluence/6/6.15.8/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.15.8/Makefile b/linux/atlassian/confluence/6/6.15.8/Makefile index daca62370..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.15.8/Makefile +++ b/linux/atlassian/confluence/6/6.15.8/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.15.8 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.15.8/docker-compose.yml b/linux/atlassian/confluence/6/6.15.8/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.15.9/.env b/linux/atlassian/confluence/6/6.15.9/.env new file mode 100644 index 000000000..4b779c9dc --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.15.9/Dockerfile b/linux/atlassian/confluence/6/6.15.9/Dockerfile index d3ce10616..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.15.9/Dockerfile +++ b/linux/atlassian/confluence/6/6.15.9/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.15.9/Makefile b/linux/atlassian/confluence/6/6.15.9/Makefile index 1383a8baf..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.15.9/Makefile +++ b/linux/atlassian/confluence/6/6.15.9/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.15.9 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.15.9/docker-compose.yml b/linux/atlassian/confluence/6/6.15.9/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2.0/.env b/linux/atlassian/confluence/6/6.2.0/.env new file mode 100644 index 000000000..b26238429 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.2.0/Dockerfile b/linux/atlassian/confluence/6/6.2.0/Dockerfile index 2918977a7..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.2.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.2.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.2.0/Makefile b/linux/atlassian/confluence/6/6.2.0/Makefile index 64a2b71a2..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.2.0/Makefile +++ b/linux/atlassian/confluence/6/6.2.0/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.2.0 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.2.0/docker-compose.yml b/linux/atlassian/confluence/6/6.2.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2.1/.env b/linux/atlassian/confluence/6/6.2.1/.env new file mode 100644 index 000000000..f99324d92 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.2.1/Dockerfile b/linux/atlassian/confluence/6/6.2.1/Dockerfile index a92c188e7..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.2.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.2.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.2.1/Makefile b/linux/atlassian/confluence/6/6.2.1/Makefile index 579cfc2a0..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.2.1/Makefile +++ b/linux/atlassian/confluence/6/6.2.1/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.2.1 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.2.1/docker-compose.yml b/linux/atlassian/confluence/6/6.2.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2.2/.env b/linux/atlassian/confluence/6/6.2.2/.env new file mode 100644 index 000000000..284ae0cbf --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.2.2/Dockerfile b/linux/atlassian/confluence/6/6.2.2/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.2.2/Makefile b/linux/atlassian/confluence/6/6.2.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.2.2/docker-compose.yml b/linux/atlassian/confluence/6/6.2.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2.2/entrypoint.sh b/linux/atlassian/confluence/6/6.2.2/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.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/6/6.2.3/.env b/linux/atlassian/confluence/6/6.2.3/.env new file mode 100644 index 000000000..87489b388 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.2.3/Dockerfile b/linux/atlassian/confluence/6/6.2.3/Dockerfile index 6cb8e82b0..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.2.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.2.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.2.3/Makefile b/linux/atlassian/confluence/6/6.2.3/Makefile index 4e065a590..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.2.3/Makefile +++ b/linux/atlassian/confluence/6/6.2.3/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.2.3 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.2.3/docker-compose.yml b/linux/atlassian/confluence/6/6.2.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.2.4/.env b/linux/atlassian/confluence/6/6.2.4/.env new file mode 100644 index 000000000..7344e72f1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.2.4/Dockerfile b/linux/atlassian/confluence/6/6.2.4/Dockerfile index 5a6774b8b..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.2.4/Dockerfile +++ b/linux/atlassian/confluence/6/6.2.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.2.4/Makefile b/linux/atlassian/confluence/6/6.2.4/Makefile index da230e169..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.2.4/Makefile +++ b/linux/atlassian/confluence/6/6.2.4/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.2.4 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.2.4/docker-compose.yml b/linux/atlassian/confluence/6/6.2.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.3.1/.env b/linux/atlassian/confluence/6/6.3.1/.env new file mode 100644 index 000000000..e45728e1e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.3.1/Dockerfile b/linux/atlassian/confluence/6/6.3.1/Dockerfile index 5427ff517..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.3.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.3.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.3.1/Makefile b/linux/atlassian/confluence/6/6.3.1/Makefile index 5a829cec6..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.3.1/Makefile +++ b/linux/atlassian/confluence/6/6.3.1/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.3.1 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.3.1/docker-compose.yml b/linux/atlassian/confluence/6/6.3.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.3.2/.env b/linux/atlassian/confluence/6/6.3.2/.env new file mode 100644 index 000000000..310edce37 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.3.2/Dockerfile b/linux/atlassian/confluence/6/6.3.2/Dockerfile index 966862883..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.3.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.3.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.3.2/Makefile b/linux/atlassian/confluence/6/6.3.2/Makefile index 87cb02a13..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.3.2/Makefile +++ b/linux/atlassian/confluence/6/6.3.2/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.3.2 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.3.2/docker-compose.yml b/linux/atlassian/confluence/6/6.3.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.3.3/.env b/linux/atlassian/confluence/6/6.3.3/.env new file mode 100644 index 000000000..7df336f6e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.3.3/Dockerfile b/linux/atlassian/confluence/6/6.3.3/Dockerfile index 0538b7412..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.3.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.3.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.3.3/Makefile b/linux/atlassian/confluence/6/6.3.3/Makefile index 3fbdcf9e3..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.3.3/Makefile +++ b/linux/atlassian/confluence/6/6.3.3/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.3.3 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.3.3/docker-compose.yml b/linux/atlassian/confluence/6/6.3.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.3.4/.env b/linux/atlassian/confluence/6/6.3.4/.env new file mode 100644 index 000000000..e2f22e173 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.3.4/Dockerfile b/linux/atlassian/confluence/6/6.3.4/Dockerfile index c5943a421..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.3.4/Dockerfile +++ b/linux/atlassian/confluence/6/6.3.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.3.4/Makefile b/linux/atlassian/confluence/6/6.3.4/Makefile index 1505da964..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.3.4/Makefile +++ b/linux/atlassian/confluence/6/6.3.4/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.3.4 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.3.4/docker-compose.yml b/linux/atlassian/confluence/6/6.3.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.4.0/.env b/linux/atlassian/confluence/6/6.4.0/.env new file mode 100644 index 000000000..edc7914d2 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.4.0/Dockerfile b/linux/atlassian/confluence/6/6.4.0/Dockerfile index e54266583..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.4.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.4.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.4.0/Makefile b/linux/atlassian/confluence/6/6.4.0/Makefile index dd3a24008..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.4.0/Makefile +++ b/linux/atlassian/confluence/6/6.4.0/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.4.0 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.4.0/docker-compose.yml b/linux/atlassian/confluence/6/6.4.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.4.1/.env b/linux/atlassian/confluence/6/6.4.1/.env new file mode 100644 index 000000000..0ffba2ad0 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.4.1/Dockerfile b/linux/atlassian/confluence/6/6.4.1/Dockerfile index 62c64bbde..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.4.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.4.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.4.1/Makefile b/linux/atlassian/confluence/6/6.4.1/Makefile index 7379fec29..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.4.1/Makefile +++ b/linux/atlassian/confluence/6/6.4.1/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.4.1 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.4.1/docker-compose.yml b/linux/atlassian/confluence/6/6.4.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.4.2/.env b/linux/atlassian/confluence/6/6.4.2/.env new file mode 100644 index 000000000..6aa43e67e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.4.2/Dockerfile b/linux/atlassian/confluence/6/6.4.2/Dockerfile index d092f4d19..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.4.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.4.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.4.2/Makefile b/linux/atlassian/confluence/6/6.4.2/Makefile index 34484b6ce..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.4.2/Makefile +++ b/linux/atlassian/confluence/6/6.4.2/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.4.2 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.4.2/docker-compose.yml b/linux/atlassian/confluence/6/6.4.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.4.3/.env b/linux/atlassian/confluence/6/6.4.3/.env new file mode 100644 index 000000000..5712f9dfc --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.4.3/Dockerfile b/linux/atlassian/confluence/6/6.4.3/Dockerfile index 6281998aa..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.4.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.4.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.4.3/Makefile b/linux/atlassian/confluence/6/6.4.3/Makefile index 888a64d97..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.4.3/Makefile +++ b/linux/atlassian/confluence/6/6.4.3/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.4.3 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.4.3/docker-compose.yml b/linux/atlassian/confluence/6/6.4.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.5.0/.env b/linux/atlassian/confluence/6/6.5.0/.env new file mode 100644 index 000000000..d30a1d3a9 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.5.0/Dockerfile b/linux/atlassian/confluence/6/6.5.0/Dockerfile index e674e1e53..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.5.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.5.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.5.0/Makefile b/linux/atlassian/confluence/6/6.5.0/Makefile index a457b27b6..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.5.0/Makefile +++ b/linux/atlassian/confluence/6/6.5.0/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.5.0 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.5.0/docker-compose.yml b/linux/atlassian/confluence/6/6.5.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.5.1/.env b/linux/atlassian/confluence/6/6.5.1/.env new file mode 100644 index 000000000..e12c4817e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.5.1/Dockerfile b/linux/atlassian/confluence/6/6.5.1/Dockerfile index fb30c69be..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.5.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.5.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.5.1/Makefile b/linux/atlassian/confluence/6/6.5.1/Makefile index 10590eca2..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.5.1/Makefile +++ b/linux/atlassian/confluence/6/6.5.1/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.5.1 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.5.1/docker-compose.yml b/linux/atlassian/confluence/6/6.5.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.5.2/.env b/linux/atlassian/confluence/6/6.5.2/.env new file mode 100644 index 000000000..b078db65b --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.5.2/Dockerfile b/linux/atlassian/confluence/6/6.5.2/Dockerfile index 6a5f7cc0f..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.5.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.5.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.5.2/Makefile b/linux/atlassian/confluence/6/6.5.2/Makefile index d9dde7a8f..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.5.2/Makefile +++ b/linux/atlassian/confluence/6/6.5.2/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.5.2 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.5.2/docker-compose.yml b/linux/atlassian/confluence/6/6.5.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.5.3/.env b/linux/atlassian/confluence/6/6.5.3/.env new file mode 100644 index 000000000..70fa0bfa7 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.5.3/Dockerfile b/linux/atlassian/confluence/6/6.5.3/Dockerfile index f81e707cb..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.5.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.5.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.5.3/Makefile b/linux/atlassian/confluence/6/6.5.3/Makefile index 1e1b17a1a..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.5.3/Makefile +++ b/linux/atlassian/confluence/6/6.5.3/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.5.3 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.5.3/docker-compose.yml b/linux/atlassian/confluence/6/6.5.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.0/.env b/linux/atlassian/confluence/6/6.6.0/.env new file mode 100644 index 000000000..45b8e64ff --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.0/Dockerfile b/linux/atlassian/confluence/6/6.6.0/Dockerfile index b0850304f..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.0/Makefile b/linux/atlassian/confluence/6/6.6.0/Makefile index 1876076f1..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.0/Makefile +++ b/linux/atlassian/confluence/6/6.6.0/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.0 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.0/docker-compose.yml b/linux/atlassian/confluence/6/6.6.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.1/.env b/linux/atlassian/confluence/6/6.6.1/.env new file mode 100644 index 000000000..d34c02445 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.1/Dockerfile b/linux/atlassian/confluence/6/6.6.1/Dockerfile index 1608677f8..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.1/Makefile b/linux/atlassian/confluence/6/6.6.1/Makefile index 9127a3ae2..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.1/Makefile +++ b/linux/atlassian/confluence/6/6.6.1/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.1 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.1/docker-compose.yml b/linux/atlassian/confluence/6/6.6.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.10/.env b/linux/atlassian/confluence/6/6.6.10/.env new file mode 100644 index 000000000..b361c9b20 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.10/Dockerfile b/linux/atlassian/confluence/6/6.6.10/Dockerfile index eb33e2439..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.10/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.10/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.10/Makefile b/linux/atlassian/confluence/6/6.6.10/Makefile index e322ce139..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.10/Makefile +++ b/linux/atlassian/confluence/6/6.6.10/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.10 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.10/docker-compose.yml b/linux/atlassian/confluence/6/6.6.10/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.11/.env b/linux/atlassian/confluence/6/6.6.11/.env new file mode 100644 index 000000000..b596676b1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.11/Dockerfile b/linux/atlassian/confluence/6/6.6.11/Dockerfile index 65d9e9233..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.11/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.11/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.11/Makefile b/linux/atlassian/confluence/6/6.6.11/Makefile index 42ff0164d..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.11/Makefile +++ b/linux/atlassian/confluence/6/6.6.11/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.11 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.11/docker-compose.yml b/linux/atlassian/confluence/6/6.6.11/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.12/.env b/linux/atlassian/confluence/6/6.6.12/.env new file mode 100644 index 000000000..656c9641b --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.12/Dockerfile b/linux/atlassian/confluence/6/6.6.12/Dockerfile index 17da76ab4..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.12/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.12/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.12/Makefile b/linux/atlassian/confluence/6/6.6.12/Makefile index 29ec4ae8d..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.12/Makefile +++ b/linux/atlassian/confluence/6/6.6.12/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.12 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.12/docker-compose.yml b/linux/atlassian/confluence/6/6.6.12/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13/.env b/linux/atlassian/confluence/6/6.6.13/.env new file mode 100644 index 000000000..88783b979 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.13/Dockerfile b/linux/atlassian/confluence/6/6.6.13/Dockerfile index cd6f7d0e5..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.13/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.13/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.13/Makefile b/linux/atlassian/confluence/6/6.6.13/Makefile index 4a5e342e0..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.13/Makefile +++ b/linux/atlassian/confluence/6/6.6.13/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.13 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.13/docker-compose.yml b/linux/atlassian/confluence/6/6.6.13/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.14/.env b/linux/atlassian/confluence/6/6.6.14/.env new file mode 100644 index 000000000..87766073b --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.14/Dockerfile b/linux/atlassian/confluence/6/6.6.14/Dockerfile index 88534111b..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.14/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.14/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.14/Makefile b/linux/atlassian/confluence/6/6.6.14/Makefile index c07283d88..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.14/Makefile +++ b/linux/atlassian/confluence/6/6.6.14/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.14 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.14/docker-compose.yml b/linux/atlassian/confluence/6/6.6.14/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.15/.env b/linux/atlassian/confluence/6/6.6.15/.env new file mode 100644 index 000000000..3e90b7e7e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.15/Dockerfile b/linux/atlassian/confluence/6/6.6.15/Dockerfile index 65fd33268..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.15/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.15/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.15/Makefile b/linux/atlassian/confluence/6/6.6.15/Makefile index c16e574e6..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.15/Makefile +++ b/linux/atlassian/confluence/6/6.6.15/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.15 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.15/docker-compose.yml b/linux/atlassian/confluence/6/6.6.15/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.16/.env b/linux/atlassian/confluence/6/6.6.16/.env new file mode 100644 index 000000000..43cd635a8 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.16/Dockerfile b/linux/atlassian/confluence/6/6.6.16/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.16/Makefile b/linux/atlassian/confluence/6/6.6.16/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.16/docker-compose.yml b/linux/atlassian/confluence/6/6.6.16/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6.16/entrypoint.sh b/linux/atlassian/confluence/6/6.6.16/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.6.16/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/6/6.6.17/.env b/linux/atlassian/confluence/6/6.6.17/.env new file mode 100644 index 000000000..7e025377f --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.17/Dockerfile b/linux/atlassian/confluence/6/6.6.17/Dockerfile index 554b5841a..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.17/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.17/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.17/Makefile b/linux/atlassian/confluence/6/6.6.17/Makefile index 356dd5709..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.17/Makefile +++ b/linux/atlassian/confluence/6/6.6.17/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.17 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.17/docker-compose.yml b/linux/atlassian/confluence/6/6.6.17/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6.2/.env b/linux/atlassian/confluence/6/6.6.2/.env new file mode 100644 index 000000000..d7e9f01a6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.2/Dockerfile b/linux/atlassian/confluence/6/6.6.2/Dockerfile index e0bc6ea1b..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.2/Makefile b/linux/atlassian/confluence/6/6.6.2/Makefile index d66002167..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.2/Makefile +++ b/linux/atlassian/confluence/6/6.6.2/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.2 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.2/docker-compose.yml b/linux/atlassian/confluence/6/6.6.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6.3/.env b/linux/atlassian/confluence/6/6.6.3/.env new file mode 100644 index 000000000..48a685e93 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.3/Dockerfile b/linux/atlassian/confluence/6/6.6.3/Dockerfile index a19bd9413..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.3/Makefile b/linux/atlassian/confluence/6/6.6.3/Makefile index ecb5e0dd8..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.3/Makefile +++ b/linux/atlassian/confluence/6/6.6.3/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.3 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.3/docker-compose.yml b/linux/atlassian/confluence/6/6.6.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6.4/.env b/linux/atlassian/confluence/6/6.6.4/.env new file mode 100644 index 000000000..d4cc67ded --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.4/Dockerfile b/linux/atlassian/confluence/6/6.6.4/Dockerfile index 9c8864c32..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.4/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.4/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.4/Makefile b/linux/atlassian/confluence/6/6.6.4/Makefile index 47c8828ca..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.4/Makefile +++ b/linux/atlassian/confluence/6/6.6.4/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.4 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.4/docker-compose.yml b/linux/atlassian/confluence/6/6.6.4/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6.5/.env b/linux/atlassian/confluence/6/6.6.5/.env new file mode 100644 index 000000000..7dbc98196 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.5/Dockerfile b/linux/atlassian/confluence/6/6.6.5/Dockerfile index eec344827..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.5/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.5/Makefile b/linux/atlassian/confluence/6/6.6.5/Makefile index 9bdd33e42..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.5/Makefile +++ b/linux/atlassian/confluence/6/6.6.5/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.5 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.5/docker-compose.yml b/linux/atlassian/confluence/6/6.6.5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6.6/.env b/linux/atlassian/confluence/6/6.6.6/.env new file mode 100644 index 000000000..d81c7e388 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.6/Dockerfile b/linux/atlassian/confluence/6/6.6.6/Dockerfile index cadb2a898..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.6/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.6/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.6/Makefile b/linux/atlassian/confluence/6/6.6.6/Makefile index 8c37edc2f..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.6/Makefile +++ b/linux/atlassian/confluence/6/6.6.6/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.6 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.6/docker-compose.yml b/linux/atlassian/confluence/6/6.6.6/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6.7/.env b/linux/atlassian/confluence/6/6.6.7/.env new file mode 100644 index 000000000..a9226369e --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.7/Dockerfile b/linux/atlassian/confluence/6/6.6.7/Dockerfile index 2650f20ab..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.7/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.7/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.7/Makefile b/linux/atlassian/confluence/6/6.6.7/Makefile index d091db002..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.7/Makefile +++ b/linux/atlassian/confluence/6/6.6.7/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.7 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.7/docker-compose.yml b/linux/atlassian/confluence/6/6.6.7/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6.8/.env b/linux/atlassian/confluence/6/6.6.8/.env new file mode 100644 index 000000000..baa84f762 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.8/Dockerfile b/linux/atlassian/confluence/6/6.6.8/Dockerfile index 408735cf7..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.8/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.8/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.8/Makefile b/linux/atlassian/confluence/6/6.6.8/Makefile index d3628320b..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.8/Makefile +++ b/linux/atlassian/confluence/6/6.6.8/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.8 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.8/docker-compose.yml b/linux/atlassian/confluence/6/6.6.8/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.6.9/.env b/linux/atlassian/confluence/6/6.6.9/.env new file mode 100644 index 000000000..ab8265e13 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.6.9/Dockerfile b/linux/atlassian/confluence/6/6.6.9/Dockerfile index 5e3984215..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.6.9/Dockerfile +++ b/linux/atlassian/confluence/6/6.6.9/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.6.9/Makefile b/linux/atlassian/confluence/6/6.6.9/Makefile index 6206d1f00..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.6.9/Makefile +++ b/linux/atlassian/confluence/6/6.6.9/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.6.9 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.6.9/docker-compose.yml b/linux/atlassian/confluence/6/6.6.9/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.7.0/.env b/linux/atlassian/confluence/6/6.7.0/.env new file mode 100644 index 000000000..e9594d19f --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.7.0/Dockerfile b/linux/atlassian/confluence/6/6.7.0/Dockerfile index 9dc91e223..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.7.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.7.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.7.0/Makefile b/linux/atlassian/confluence/6/6.7.0/Makefile index 23bfba3d1..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.7.0/Makefile +++ b/linux/atlassian/confluence/6/6.7.0/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.7.0 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.7.0/docker-compose.yml b/linux/atlassian/confluence/6/6.7.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.7.1/.env b/linux/atlassian/confluence/6/6.7.1/.env new file mode 100644 index 000000000..d390d39a1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.7.1/Dockerfile b/linux/atlassian/confluence/6/6.7.1/Dockerfile index d868cca9e..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.7.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.7.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.7.1/Makefile b/linux/atlassian/confluence/6/6.7.1/Makefile index 0375c7354..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.7.1/Makefile +++ b/linux/atlassian/confluence/6/6.7.1/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.7.1 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.7.1/docker-compose.yml b/linux/atlassian/confluence/6/6.7.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.7.2/.env b/linux/atlassian/confluence/6/6.7.2/.env new file mode 100644 index 000000000..9bd3155a6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.7.2/Dockerfile b/linux/atlassian/confluence/6/6.7.2/Dockerfile index bde658aa8..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.7.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.7.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.7.2/Makefile b/linux/atlassian/confluence/6/6.7.2/Makefile index 4f78c9478..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.7.2/Makefile +++ b/linux/atlassian/confluence/6/6.7.2/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.7.2 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.7.2/docker-compose.yml b/linux/atlassian/confluence/6/6.7.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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/6/6.7.3/.env b/linux/atlassian/confluence/6/6.7.3/.env new file mode 100644 index 000000000..64a3a4d6d --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.7.3/Dockerfile b/linux/atlassian/confluence/6/6.7.3/Dockerfile index cf138aaf8..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.7.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.7.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.7.3/Makefile b/linux/atlassian/confluence/6/6.7.3/Makefile index f53fd1b3e..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.7.3/Makefile +++ b/linux/atlassian/confluence/6/6.7.3/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.7.3 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.7.3/docker-compose.yml b/linux/atlassian/confluence/6/6.7.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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/6/6.8.0/.env b/linux/atlassian/confluence/6/6.8.0/.env new file mode 100644 index 000000000..bd0f07d7f --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.8.0/Dockerfile b/linux/atlassian/confluence/6/6.8.0/Dockerfile index 6b0568acc..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.8.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.8.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.8.0/Makefile b/linux/atlassian/confluence/6/6.8.0/Makefile index 8914687ef..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.8.0/Makefile +++ b/linux/atlassian/confluence/6/6.8.0/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.0 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.8.0/docker-compose.yml b/linux/atlassian/confluence/6/6.8.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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/6/6.8.1/.env b/linux/atlassian/confluence/6/6.8.1/.env new file mode 100644 index 000000000..eeca8131a --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.8.1/Dockerfile b/linux/atlassian/confluence/6/6.8.1/Dockerfile index 9473a5c21..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.8.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.8.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.8.1/Makefile b/linux/atlassian/confluence/6/6.8.1/Makefile index 18152fd63..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.8.1/Makefile +++ b/linux/atlassian/confluence/6/6.8.1/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.1 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.8.1/docker-compose.yml b/linux/atlassian/confluence/6/6.8.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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/6/6.8.2/.env b/linux/atlassian/confluence/6/6.8.2/.env new file mode 100644 index 000000000..c633752cd --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.8.2/Dockerfile b/linux/atlassian/confluence/6/6.8.2/Dockerfile index daa28275d..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.8.2/Dockerfile +++ b/linux/atlassian/confluence/6/6.8.2/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.8.2/Makefile b/linux/atlassian/confluence/6/6.8.2/Makefile index 644a64e9a..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.8.2/Makefile +++ b/linux/atlassian/confluence/6/6.8.2/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.2 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.8.2/docker-compose.yml b/linux/atlassian/confluence/6/6.8.2/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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/6/6.8.3/.env b/linux/atlassian/confluence/6/6.8.3/.env new file mode 100644 index 000000000..04b0382a6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.8.3/Dockerfile b/linux/atlassian/confluence/6/6.8.3/Dockerfile index 23aa96760..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.8.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.8.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.8.3/Makefile b/linux/atlassian/confluence/6/6.8.3/Makefile index fc299aceb..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.8.3/Makefile +++ b/linux/atlassian/confluence/6/6.8.3/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.3 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.8.3/docker-compose.yml b/linux/atlassian/confluence/6/6.8.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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/6/6.8.5/.env b/linux/atlassian/confluence/6/6.8.5/.env new file mode 100644 index 000000000..e7116fec2 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.8.5/Dockerfile b/linux/atlassian/confluence/6/6.8.5/Dockerfile index 5d4878265..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.8.5/Dockerfile +++ b/linux/atlassian/confluence/6/6.8.5/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.8.5/Makefile b/linux/atlassian/confluence/6/6.8.5/Makefile index 45a3c676a..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.8.5/Makefile +++ b/linux/atlassian/confluence/6/6.8.5/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.8.5 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.8.5/docker-compose.yml b/linux/atlassian/confluence/6/6.8.5/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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/6/6.9.0/.env b/linux/atlassian/confluence/6/6.9.0/.env new file mode 100644 index 000000000..2894cde94 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.9.0/Dockerfile b/linux/atlassian/confluence/6/6.9.0/Dockerfile index e31383c10..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.9.0/Dockerfile +++ b/linux/atlassian/confluence/6/6.9.0/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.9.0/Makefile b/linux/atlassian/confluence/6/6.9.0/Makefile index 8e9d5875b..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.9.0/Makefile +++ b/linux/atlassian/confluence/6/6.9.0/Makefile @@ -1,5 +1,5 @@ -all: confl - -confl: - docker build --compress -t epicmorg/confluence:6.9.0 . +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.9.0/docker-compose.yml b/linux/atlassian/confluence/6/6.9.0/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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/6/6.9.1/.env b/linux/atlassian/confluence/6/6.9.1/.env new file mode 100644 index 000000000..21643280f --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.9.1/Dockerfile b/linux/atlassian/confluence/6/6.9.1/Dockerfile index f5b01ef4a..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.9.1/Dockerfile +++ b/linux/atlassian/confluence/6/6.9.1/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.9.1/Makefile b/linux/atlassian/confluence/6/6.9.1/Makefile index e10d5aa7c..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.9.1/Makefile +++ b/linux/atlassian/confluence/6/6.9.1/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.9.1 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.9.1/docker-compose.yml b/linux/atlassian/confluence/6/6.9.1/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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/6/6.9.3/.env b/linux/atlassian/confluence/6/6.9.3/.env new file mode 100644 index 000000000..41c6ceb1b --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.9.3/Dockerfile b/linux/atlassian/confluence/6/6.9.3/Dockerfile index e5540d33d..f3e6e40c1 100644 --- a/linux/atlassian/confluence/6/6.9.3/Dockerfile +++ b/linux/atlassian/confluence/6/6.9.3/Dockerfile @@ -5,8 +5,11 @@ 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 + +#configured by dockerfile / .ENV +ARG RELEASE +ARG DOWNLOAD_URL + ################################################################## # Setup diff --git a/linux/atlassian/confluence/6/6.9.3/Makefile b/linux/atlassian/confluence/6/6.9.3/Makefile index 24cf8034f..82c5a2de6 100644 --- a/linux/atlassian/confluence/6/6.9.3/Makefile +++ b/linux/atlassian/confluence/6/6.9.3/Makefile @@ -1,4 +1,5 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence:6.9.3 . +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/confluence/6/6.9.3/docker-compose.yml b/linux/atlassian/confluence/6/6.9.3/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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 From c78306518d6649471034f563e436991e3ff88061 Mon Sep 17 00:00:00 2001 From: Odmin Date: Wed, 19 May 2021 18:52:13 +0300 Subject: [PATCH 035/144] chmox +x for *.sh --- bin/dotnet/data/confluence/templates/5/entrypoint.sh | 0 bin/dotnet/data/confluence/templates/6/entrypoint.sh | 0 linux/atlassian/confluence/6/6.13.12/entrypoint.sh | 0 linux/atlassian/confluence/6/6.13.13/entrypoint.sh | 0 linux/atlassian/confluence/6/6.13.15/entrypoint.sh | 0 linux/atlassian/confluence/6/6.13.17/entrypoint.sh | 0 linux/atlassian/confluence/6/6.13.18/entrypoint.sh | 0 linux/atlassian/confluence/6/6.13.19/entrypoint.sh | 0 linux/atlassian/confluence/6/6.13.20/entrypoint.sh | 0 linux/atlassian/confluence/6/6.2.2/entrypoint.sh | 0 linux/atlassian/confluence/6/6.6.16/entrypoint.sh | 0 11 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 bin/dotnet/data/confluence/templates/5/entrypoint.sh mode change 100644 => 100755 bin/dotnet/data/confluence/templates/6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/6/6.13.12/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/6/6.13.13/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/6/6.13.15/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/6/6.13.17/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/6/6.13.18/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/6/6.13.19/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/6/6.13.20/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/6/6.2.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/6/6.6.16/entrypoint.sh diff --git a/bin/dotnet/data/confluence/templates/5/entrypoint.sh b/bin/dotnet/data/confluence/templates/5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/bin/dotnet/data/confluence/templates/6/entrypoint.sh b/bin/dotnet/data/confluence/templates/6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/6/6.13.12/entrypoint.sh b/linux/atlassian/confluence/6/6.13.12/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/6/6.13.13/entrypoint.sh b/linux/atlassian/confluence/6/6.13.13/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/6/6.13.15/entrypoint.sh b/linux/atlassian/confluence/6/6.13.15/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/6/6.13.17/entrypoint.sh b/linux/atlassian/confluence/6/6.13.17/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/6/6.13.18/entrypoint.sh b/linux/atlassian/confluence/6/6.13.18/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/6/6.13.19/entrypoint.sh b/linux/atlassian/confluence/6/6.13.19/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/6/6.13.20/entrypoint.sh b/linux/atlassian/confluence/6/6.13.20/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/6/6.2.2/entrypoint.sh b/linux/atlassian/confluence/6/6.2.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/6/6.6.16/entrypoint.sh b/linux/atlassian/confluence/6/6.6.16/entrypoint.sh old mode 100644 new mode 100755 From ae6da28899891457129d6a2a1a716d52eec6d666 Mon Sep 17 00:00:00 2001 From: Alex_Z Date: Thu, 20 May 2021 16:25:23 +0300 Subject: [PATCH 036/144] Update Program.cs Update validation condition --- bin/dotnet/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/dotnet/Program.cs b/bin/dotnet/Program.cs index b1b804017..1b28f17e6 100644 --- a/bin/dotnet/Program.cs +++ b/bin/dotnet/Program.cs @@ -23,7 +23,7 @@ public static async Task Main(DirectoryInfo workdir, FileInfo json, string produ { 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.ToString().EndsWith(archiveType) && !a.ZipUrl .ToString().Contains("-war"))) + 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); From abfe7646ac55ab5c99c504b5146acc4c3254fdbf Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 00:26:02 +0300 Subject: [PATCH 037/144] nginx rename --- linux/nginx/{latest => main}/Dockerfile | 0 linux/nginx/{latest => main}/Makefile | 0 linux/nginx/{latest => main}/README.md | 0 .../pre/ip2location-description-pak | 0 .../{latest => main}/pre/luajit2-description-pak | 0 .../{latest => main}/pre/nginx-description-pak | 0 linux/nginx/{latest => main}/pre/ngninx.pre.tar.gz | Bin 7 files changed, 0 insertions(+), 0 deletions(-) rename linux/nginx/{latest => main}/Dockerfile (100%) rename linux/nginx/{latest => main}/Makefile (100%) rename linux/nginx/{latest => main}/README.md (100%) rename linux/nginx/{latest => main}/pre/ip2location-description-pak (100%) rename linux/nginx/{latest => main}/pre/luajit2-description-pak (100%) rename linux/nginx/{latest => main}/pre/nginx-description-pak (100%) rename linux/nginx/{latest => main}/pre/ngninx.pre.tar.gz (100%) diff --git a/linux/nginx/latest/Dockerfile b/linux/nginx/main/Dockerfile similarity index 100% rename from linux/nginx/latest/Dockerfile rename to linux/nginx/main/Dockerfile diff --git a/linux/nginx/latest/Makefile b/linux/nginx/main/Makefile similarity index 100% rename from linux/nginx/latest/Makefile rename to linux/nginx/main/Makefile diff --git a/linux/nginx/latest/README.md b/linux/nginx/main/README.md similarity index 100% rename from linux/nginx/latest/README.md rename to linux/nginx/main/README.md diff --git a/linux/nginx/latest/pre/ip2location-description-pak b/linux/nginx/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/latest/pre/ip2location-description-pak rename to linux/nginx/main/pre/ip2location-description-pak diff --git a/linux/nginx/latest/pre/luajit2-description-pak b/linux/nginx/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/latest/pre/luajit2-description-pak rename to linux/nginx/main/pre/luajit2-description-pak diff --git a/linux/nginx/latest/pre/nginx-description-pak b/linux/nginx/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/latest/pre/nginx-description-pak rename to linux/nginx/main/pre/nginx-description-pak diff --git a/linux/nginx/latest/pre/ngninx.pre.tar.gz b/linux/nginx/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/latest/pre/ngninx.pre.tar.gz rename to linux/nginx/main/pre/ngninx.pre.tar.gz From 4c044fd77797541b499b4594f85f6fecb4cf619d Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 00:48:19 +0300 Subject: [PATCH 038/144] nginx - new format --- linux/nginx/1.21.0/main/.env | 2 ++ linux/nginx/{ => 1.21.0}/main/Dockerfile | 8 +++++--- linux/nginx/1.21.0/main/Makefile | 5 +++++ linux/nginx/{ => 1.21.0}/main/README.md | 0 linux/nginx/1.21.0/main/docker-compose.yml | 9 +++++++++ .../main/pre/ip2location-description-pak | 0 .../{ => 1.21.0}/main/pre/luajit2-description-pak | 0 .../{ => 1.21.0}/main/pre/nginx-description-pak | 0 linux/nginx/{ => 1.21.0}/main/pre/ngninx.pre.tar.gz | Bin linux/nginx/1.21.0/php/.env | 2 ++ linux/nginx/{ => 1.21.0}/php/Dockerfile | 2 +- linux/nginx/1.21.0/php/Makefile | 5 +++++ linux/nginx/{ => 1.21.0}/php/README.md | 0 linux/nginx/1.21.0/php/docker-compose.yml | 9 +++++++++ linux/nginx/1.21.0/rtmp-hls/.env | 2 ++ linux/nginx/{ => 1.21.0}/rtmp-hls/Dockerfile | 2 +- linux/nginx/1.21.0/rtmp-hls/Makefile | 5 +++++ linux/nginx/{ => 1.21.0}/rtmp-hls/README.md | 0 linux/nginx/{ => 1.21.0}/rtmp-hls/conf/nginx.conf | 0 .../{ => 1.21.0}/rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf | 0 linux/nginx/1.21.0/rtmp-hls/docker-compose.yml | 9 +++++++++ linux/nginx/{ => 1.21.0}/rtmp-hls/players/dash.html | 0 linux/nginx/{ => 1.21.0}/rtmp-hls/players/hls.html | 0 .../{ => 1.21.0}/rtmp-hls/players/hls_hlsjs.html | 0 linux/nginx/{ => 1.21.0}/rtmp-hls/players/rtmp.html | 0 .../{ => 1.21.0}/rtmp-hls/players/rtmp_hls.html | 0 .../rtmp-hls/sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../rtmp-hls/sources.list.d/sources.stretch.list | 0 linux/nginx/main/Makefile | 8 -------- linux/nginx/php/Makefile | 8 -------- linux/nginx/rtmp-hls/Makefile | 8 -------- 33 files changed, 55 insertions(+), 29 deletions(-) create mode 100644 linux/nginx/1.21.0/main/.env rename linux/nginx/{ => 1.21.0}/main/Dockerfile (97%) create mode 100644 linux/nginx/1.21.0/main/Makefile rename linux/nginx/{ => 1.21.0}/main/README.md (100%) create mode 100644 linux/nginx/1.21.0/main/docker-compose.yml rename linux/nginx/{ => 1.21.0}/main/pre/ip2location-description-pak (100%) rename linux/nginx/{ => 1.21.0}/main/pre/luajit2-description-pak (100%) rename linux/nginx/{ => 1.21.0}/main/pre/nginx-description-pak (100%) rename linux/nginx/{ => 1.21.0}/main/pre/ngninx.pre.tar.gz (100%) create mode 100644 linux/nginx/1.21.0/php/.env rename linux/nginx/{ => 1.21.0}/php/Dockerfile (99%) create mode 100644 linux/nginx/1.21.0/php/Makefile rename linux/nginx/{ => 1.21.0}/php/README.md (100%) create mode 100644 linux/nginx/1.21.0/php/docker-compose.yml create mode 100644 linux/nginx/1.21.0/rtmp-hls/.env rename linux/nginx/{ => 1.21.0}/rtmp-hls/Dockerfile (99%) create mode 100644 linux/nginx/1.21.0/rtmp-hls/Makefile rename linux/nginx/{ => 1.21.0}/rtmp-hls/README.md (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/conf/nginx.conf (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) create mode 100644 linux/nginx/1.21.0/rtmp-hls/docker-compose.yml rename linux/nginx/{ => 1.21.0}/rtmp-hls/players/dash.html (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/players/hls.html (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/players/rtmp.html (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/players/rtmp_hls.html (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/nginx/{ => 1.21.0}/rtmp-hls/sources.list.d/sources.stretch.list (100%) delete mode 100644 linux/nginx/main/Makefile delete mode 100644 linux/nginx/php/Makefile delete mode 100644 linux/nginx/rtmp-hls/Makefile diff --git a/linux/nginx/1.21.0/main/.env b/linux/nginx/1.21.0/main/.env new file mode 100644 index 000000000..7576029f8 --- /dev/null +++ b/linux/nginx/1.21.0/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.21.0 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz diff --git a/linux/nginx/main/Dockerfile b/linux/nginx/1.21.0/main/Dockerfile similarity index 97% rename from linux/nginx/main/Dockerfile rename to linux/nginx/1.21.0/main/Dockerfile index a4132ddcb..86ee20947 100644 --- a/linux/nginx/main/Dockerfile +++ b/linux/nginx/1.21.0/main/Dockerfile @@ -11,8 +11,8 @@ 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.20.0 -ARG NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz +ARG NGINX_VERSION +ARG NGINX_DOWNLOAD_URL ARG LUAJIT_INC=/usr/local/include/luajit-2.1 ARG LUAJIT_LIB=/usr/local/lib @@ -39,6 +39,7 @@ RUN cd ${SRC_DIR} && \ 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 ln -s /lib/x86_64-linux-gnu/libcrypto.so.1 && \ dpkg --force-all -i ${EXPORT_DIR}/*.deb ################################################################## @@ -148,7 +149,7 @@ RUN cd ${NGINX_SRC_DIR} && \ --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=nginx-audio-track-for-hls-module \ --add-dynamic-module=ip2location-nginx \ --add-dynamic-module=nginx-vod-module \ # --add-dynamic-module=nginx-module-vts \ @@ -207,6 +208,7 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 ln -s /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ diff --git a/linux/nginx/1.21.0/main/Makefile b/linux/nginx/1.21.0/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.21.0/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/main/README.md b/linux/nginx/1.21.0/main/README.md similarity index 100% rename from linux/nginx/main/README.md rename to linux/nginx/1.21.0/main/README.md diff --git a/linux/nginx/1.21.0/main/docker-compose.yml b/linux/nginx/1.21.0/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/nginx/1.21.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/nginx/main/pre/ip2location-description-pak b/linux/nginx/1.21.0/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/main/pre/ip2location-description-pak rename to linux/nginx/1.21.0/main/pre/ip2location-description-pak diff --git a/linux/nginx/main/pre/luajit2-description-pak b/linux/nginx/1.21.0/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/main/pre/luajit2-description-pak rename to linux/nginx/1.21.0/main/pre/luajit2-description-pak diff --git a/linux/nginx/main/pre/nginx-description-pak b/linux/nginx/1.21.0/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/main/pre/nginx-description-pak rename to linux/nginx/1.21.0/main/pre/nginx-description-pak diff --git a/linux/nginx/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.21.0/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/main/pre/ngninx.pre.tar.gz rename to linux/nginx/1.21.0/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.21.0/php/.env b/linux/nginx/1.21.0/php/.env new file mode 100644 index 000000000..7576029f8 --- /dev/null +++ b/linux/nginx/1.21.0/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.21.0 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz diff --git a/linux/nginx/php/Dockerfile b/linux/nginx/1.21.0/php/Dockerfile similarity index 99% rename from linux/nginx/php/Dockerfile rename to linux/nginx/1.21.0/php/Dockerfile index 5b270dd89..e26506627 100644 --- a/linux/nginx/php/Dockerfile +++ b/linux/nginx/1.21.0/php/Dockerfile @@ -83,7 +83,7 @@ RUN pecl install smbclient && \ ################################################################## -FROM epicmorg/nginx:latest +FROM epicmorg/nginx:${NGINX_VERSION} LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive diff --git a/linux/nginx/1.21.0/php/Makefile b/linux/nginx/1.21.0/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.21.0/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/php/README.md b/linux/nginx/1.21.0/php/README.md similarity index 100% rename from linux/nginx/php/README.md rename to linux/nginx/1.21.0/php/README.md diff --git a/linux/nginx/1.21.0/php/docker-compose.yml b/linux/nginx/1.21.0/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/nginx/1.21.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/nginx/1.21.0/rtmp-hls/.env b/linux/nginx/1.21.0/rtmp-hls/.env new file mode 100644 index 000000000..7576029f8 --- /dev/null +++ b/linux/nginx/1.21.0/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.21.0 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz diff --git a/linux/nginx/rtmp-hls/Dockerfile b/linux/nginx/1.21.0/rtmp-hls/Dockerfile similarity index 99% rename from linux/nginx/rtmp-hls/Dockerfile rename to linux/nginx/1.21.0/rtmp-hls/Dockerfile index e986263e2..e20d6fe35 100644 --- a/linux/nginx/rtmp-hls/Dockerfile +++ b/linux/nginx/1.21.0/rtmp-hls/Dockerfile @@ -1,4 +1,4 @@ -FROM epicmorg/nginx +FROM epicmorg/nginx:${NGINX_VERSION} LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive diff --git a/linux/nginx/1.21.0/rtmp-hls/Makefile b/linux/nginx/1.21.0/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.21.0/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/rtmp-hls/README.md b/linux/nginx/1.21.0/rtmp-hls/README.md similarity index 100% rename from linux/nginx/rtmp-hls/README.md rename to linux/nginx/1.21.0/rtmp-hls/README.md diff --git a/linux/nginx/rtmp-hls/conf/nginx.conf b/linux/nginx/1.21.0/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/rtmp-hls/conf/nginx.conf rename to linux/nginx/1.21.0/rtmp-hls/conf/nginx.conf diff --git a/linux/nginx/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.21.0/rtmp-hls/conf/nginx_no-ffmpeg.conf similarity index 100% rename from linux/nginx/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/nginx/1.21.0/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/nginx/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.21.0/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/nginx/1.21.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.21.0/rtmp-hls/docker-compose.yml b/linux/nginx/1.21.0/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/nginx/1.21.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/nginx/rtmp-hls/players/dash.html b/linux/nginx/1.21.0/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/rtmp-hls/players/dash.html rename to linux/nginx/1.21.0/rtmp-hls/players/dash.html diff --git a/linux/nginx/rtmp-hls/players/hls.html b/linux/nginx/1.21.0/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/rtmp-hls/players/hls.html rename to linux/nginx/1.21.0/rtmp-hls/players/hls.html diff --git a/linux/nginx/rtmp-hls/players/hls_hlsjs.html b/linux/nginx/1.21.0/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/rtmp-hls/players/hls_hlsjs.html rename to linux/nginx/1.21.0/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/rtmp-hls/players/rtmp.html b/linux/nginx/1.21.0/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/rtmp-hls/players/rtmp.html rename to linux/nginx/1.21.0/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/rtmp-hls/players/rtmp_hls.html b/linux/nginx/1.21.0/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/rtmp-hls/players/rtmp_hls.html rename to linux/nginx/1.21.0/rtmp-hls/players/rtmp_hls.html diff --git a/linux/nginx/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.buster.list similarity index 100% rename from linux/nginx/rtmp-hls/sources.list.d/sources.buster.list rename to linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/nginx/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.sid.list similarity index 100% rename from linux/nginx/rtmp-hls/sources.list.d/sources.sid.list rename to linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/nginx/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.stretch.list similarity index 100% rename from linux/nginx/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/main/Makefile b/linux/nginx/main/Makefile deleted file mode 100644 index f2a6e0a32..000000000 --- a/linux/nginx/main/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/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/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 From 0cecb04cf0024074c1767466854d0b62d6febf2e Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 01:00:55 +0300 Subject: [PATCH 039/144] nginx build fix --- linux/nginx/1.21.0/main/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux/nginx/1.21.0/main/Dockerfile b/linux/nginx/1.21.0/main/Dockerfile index 86ee20947..5524368e0 100644 --- a/linux/nginx/1.21.0/main/Dockerfile +++ b/linux/nginx/1.21.0/main/Dockerfile @@ -39,7 +39,7 @@ RUN cd ${SRC_DIR} && \ 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 ln -s /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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 ################################################################## @@ -208,7 +208,7 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 ln -s /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ From 69cebd1c19b98d0a811e3f6e24f8c6d4f119250c Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 01:51:10 +0300 Subject: [PATCH 040/144] nginx fix build process --- linux/nginx/1.21.0/php/Dockerfile | 9 ++++++++- linux/nginx/1.21.0/rtmp-hls/Dockerfile | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/linux/nginx/1.21.0/php/Dockerfile b/linux/nginx/1.21.0/php/Dockerfile index e26506627..3b2664f17 100644 --- a/linux/nginx/1.21.0/php/Dockerfile +++ b/linux/nginx/1.21.0/php/Dockerfile @@ -1,3 +1,11 @@ +################################################################## +# 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 @@ -82,7 +90,6 @@ RUN pecl install smbclient && \ ################################################################## ################################################################## - FROM epicmorg/nginx:${NGINX_VERSION} LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive diff --git a/linux/nginx/1.21.0/rtmp-hls/Dockerfile b/linux/nginx/1.21.0/rtmp-hls/Dockerfile index e20d6fe35..0f75b8271 100644 --- a/linux/nginx/1.21.0/rtmp-hls/Dockerfile +++ b/linux/nginx/1.21.0/rtmp-hls/Dockerfile @@ -1,3 +1,11 @@ +################################################################## +# 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 From 59963d1ecf5d10358ff7303360c7108e772633ac Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:01:17 +0300 Subject: [PATCH 041/144] fix build bug --- linux/nginx/1.21.0/rtmp-hls/Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linux/nginx/1.21.0/rtmp-hls/Dockerfile b/linux/nginx/1.21.0/rtmp-hls/Dockerfile index 0f75b8271..d7d9b5901 100644 --- a/linux/nginx/1.21.0/rtmp-hls/Dockerfile +++ b/linux/nginx/1.21.0/rtmp-hls/Dockerfile @@ -12,6 +12,11 @@ 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 ################################################################## From 3f6e2deaf48f65bab66f53e328fa7bf936221af7 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:04:13 +0300 Subject: [PATCH 042/144] env update --- linux/nginx/1.21.0/main/.env | 2 +- linux/nginx/1.21.0/php/.env | 2 +- linux/nginx/1.21.0/rtmp-hls/.env | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/linux/nginx/1.21.0/main/.env b/linux/nginx/1.21.0/main/.env index 7576029f8..fec228d1d 100644 --- a/linux/nginx/1.21.0/main/.env +++ b/linux/nginx/1.21.0/main/.env @@ -1,2 +1,2 @@ NGINX_VERSION=1.21.0 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz diff --git a/linux/nginx/1.21.0/php/.env b/linux/nginx/1.21.0/php/.env index 7576029f8..fec228d1d 100644 --- a/linux/nginx/1.21.0/php/.env +++ b/linux/nginx/1.21.0/php/.env @@ -1,2 +1,2 @@ NGINX_VERSION=1.21.0 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz diff --git a/linux/nginx/1.21.0/rtmp-hls/.env b/linux/nginx/1.21.0/rtmp-hls/.env index 7576029f8..fec228d1d 100644 --- a/linux/nginx/1.21.0/rtmp-hls/.env +++ b/linux/nginx/1.21.0/rtmp-hls/.env @@ -1,2 +1,2 @@ NGINX_VERSION=1.21.0 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz From 94b1704080a61e59f92fae99a608ace1ba76bcb6 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:05:01 +0300 Subject: [PATCH 043/144] nginx latest tag fix --- linux/nginx/latest/main/.env | 2 + linux/nginx/latest/main/Dockerfile | 227 ++++++++++++++++ linux/nginx/latest/main/Makefile | 5 + linux/nginx/latest/main/README.md | 30 ++ linux/nginx/latest/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../latest/main/pre/luajit2-description-pak | 1 + .../latest/main/pre/nginx-description-pak | 1 + linux/nginx/latest/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/latest/php/.env | 2 + linux/nginx/latest/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/latest/php/Makefile | 5 + linux/nginx/latest/php/README.md | 30 ++ linux/nginx/latest/php/docker-compose.yml | 9 + linux/nginx/latest/rtmp-hls/.env | 2 + linux/nginx/latest/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/latest/rtmp-hls/Makefile | 5 + linux/nginx/latest/rtmp-hls/README.md | 78 ++++++ linux/nginx/latest/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../latest/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/latest/rtmp-hls/docker-compose.yml | 9 + linux/nginx/latest/rtmp-hls/players/dash.html | 23 ++ linux/nginx/latest/rtmp-hls/players/hls.html | 23 ++ .../latest/rtmp-hls/players/hls_hlsjs.html | 41 +++ linux/nginx/latest/rtmp-hls/players/rtmp.html | 24 ++ .../latest/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ 30 files changed, 1266 insertions(+) create mode 100644 linux/nginx/latest/main/.env create mode 100644 linux/nginx/latest/main/Dockerfile create mode 100644 linux/nginx/latest/main/Makefile create mode 100644 linux/nginx/latest/main/README.md create mode 100644 linux/nginx/latest/main/docker-compose.yml create mode 100644 linux/nginx/latest/main/pre/ip2location-description-pak create mode 100644 linux/nginx/latest/main/pre/luajit2-description-pak create mode 100644 linux/nginx/latest/main/pre/nginx-description-pak create mode 100644 linux/nginx/latest/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/latest/php/.env create mode 100644 linux/nginx/latest/php/Dockerfile create mode 100644 linux/nginx/latest/php/Makefile create mode 100644 linux/nginx/latest/php/README.md create mode 100644 linux/nginx/latest/php/docker-compose.yml create mode 100644 linux/nginx/latest/rtmp-hls/.env create mode 100644 linux/nginx/latest/rtmp-hls/Dockerfile create mode 100644 linux/nginx/latest/rtmp-hls/Makefile create mode 100644 linux/nginx/latest/rtmp-hls/README.md create mode 100644 linux/nginx/latest/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/latest/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/latest/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/latest/rtmp-hls/players/dash.html create mode 100644 linux/nginx/latest/rtmp-hls/players/hls.html create mode 100644 linux/nginx/latest/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/latest/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/latest/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/latest/main/.env b/linux/nginx/latest/main/.env new file mode 100644 index 000000000..87426d11a --- /dev/null +++ b/linux/nginx/latest/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=latest +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz diff --git a/linux/nginx/latest/main/Dockerfile b/linux/nginx/latest/main/Dockerfile new file mode 100644 index 000000000..5524368e0 --- /dev/null +++ b/linux/nginx/latest/main/Dockerfile @@ -0,0 +1,227 @@ +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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/main/Makefile b/linux/nginx/latest/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/latest/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/latest/main/README.md b/linux/nginx/latest/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/latest/main/docker-compose.yml b/linux/nginx/latest/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/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/nginx/latest/main/pre/ip2location-description-pak b/linux/nginx/latest/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/latest/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/latest/main/pre/luajit2-description-pak b/linux/nginx/latest/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/nginx/latest/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/latest/main/pre/nginx-description-pak b/linux/nginx/latest/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/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/nginx/latest/main/pre/ngninx.pre.tar.gz b/linux/nginx/latest/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/latest/php/Makefile b/linux/nginx/latest/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/latest/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/latest/php/README.md b/linux/nginx/latest/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/latest/php/docker-compose.yml b/linux/nginx/latest/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/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/nginx/latest/rtmp-hls/.env b/linux/nginx/latest/rtmp-hls/.env new file mode 100644 index 000000000..87426d11a --- /dev/null +++ b/linux/nginx/latest/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=latest +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz diff --git a/linux/nginx/latest/rtmp-hls/Dockerfile b/linux/nginx/latest/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/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/nginx/latest/rtmp-hls/Makefile b/linux/nginx/latest/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/latest/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/latest/rtmp-hls/README.md b/linux/nginx/latest/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/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/nginx/latest/rtmp-hls/conf/nginx.conf b/linux/nginx/latest/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/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/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/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/nginx/latest/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/latest/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/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/nginx/latest/rtmp-hls/docker-compose.yml b/linux/nginx/latest/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/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/nginx/latest/rtmp-hls/players/dash.html b/linux/nginx/latest/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/latest/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/latest/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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 From c59555ef6724833c4a99ad166293d422f33eb1cd Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:07:52 +0300 Subject: [PATCH 044/144] nginx fix --- linux/nginx/1.21.0/main/Dockerfile | 8 ++++++++ linux/nginx/latest/main/Dockerfile | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/linux/nginx/1.21.0/main/Dockerfile b/linux/nginx/1.21.0/main/Dockerfile index 5524368e0..aef90bcb1 100644 --- a/linux/nginx/1.21.0/main/Dockerfile +++ b/linux/nginx/1.21.0/main/Dockerfile @@ -1,3 +1,11 @@ +################################################################## +# 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 diff --git a/linux/nginx/latest/main/Dockerfile b/linux/nginx/latest/main/Dockerfile index 5524368e0..aef90bcb1 100644 --- a/linux/nginx/latest/main/Dockerfile +++ b/linux/nginx/latest/main/Dockerfile @@ -1,3 +1,11 @@ +################################################################## +# 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 From a688aeff41fd60163ba29b99ac2c700817427845 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:24:05 +0300 Subject: [PATCH 045/144] apache2 makefile cleanup --- linux/apache2/latest/Makefile | 3 --- linux/apache2/php7.2/Makefile | 3 --- linux/apache2/php7.3/Makefile | 4 ---- linux/apache2/php7.4/Makefile | 4 ---- 4 files changed, 14 deletions(-) diff --git a/linux/apache2/latest/Makefile b/linux/apache2/latest/Makefile index 5807f7dc3..8bedaeb82 100644 --- a/linux/apache2/latest/Makefile +++ b/linux/apache2/latest/Makefile @@ -2,6 +2,3 @@ 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/Makefile b/linux/apache2/php7.2/Makefile index e10f24c18..49e2ea0dc 100644 --- a/linux/apache2/php7.2/Makefile +++ b/linux/apache2/php7.2/Makefile @@ -2,6 +2,3 @@ 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/Makefile b/linux/apache2/php7.3/Makefile index 39f4fc5a9..dac5e2861 100644 --- a/linux/apache2/php7.3/Makefile +++ b/linux/apache2/php7.3/Makefile @@ -2,7 +2,3 @@ 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/Makefile b/linux/apache2/php7.4/Makefile index 810c88cf6..6b382fa7a 100644 --- a/linux/apache2/php7.4/Makefile +++ b/linux/apache2/php7.4/Makefile @@ -2,7 +2,3 @@ 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 - From c074d7eb76e82a992b97c638ff90974f84810f67 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:28:11 +0300 Subject: [PATCH 046/144] apache migrated to new format --- linux/apache2/latest/Makefile | 9 +++++---- linux/apache2/latest/docker-compose.yml | 6 ++++++ linux/apache2/php7.2/Makefile | 9 +++++---- linux/apache2/php7.2/docker-compose.yml | 6 ++++++ linux/apache2/php7.3/Makefile | 9 +++++---- linux/apache2/php7.3/docker-compose.yml | 6 ++++++ linux/apache2/php7.4/Makefile | 9 +++++---- linux/apache2/php7.4/docker-compose.yml | 6 ++++++ 8 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 linux/apache2/latest/docker-compose.yml create mode 100644 linux/apache2/php7.2/docker-compose.yml create mode 100644 linux/apache2/php7.3/docker-compose.yml create mode 100644 linux/apache2/php7.4/docker-compose.yml diff --git a/linux/apache2/latest/Makefile b/linux/apache2/latest/Makefile index 8bedaeb82..82c5a2de6 100644 --- a/linux/apache2/latest/Makefile +++ b/linux/apache2/latest/Makefile @@ -1,4 +1,5 @@ -all: apache2 -apache2: - docker build --compress -t epicmorg/apache2:latest . - docker push epicmorg/apache2:latest +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/apache2/latest/docker-compose.yml b/linux/apache2/latest/docker-compose.yml new file mode 100644 index 000000000..99eebbfd1 --- /dev/null +++ b/linux/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/php7.2/Makefile b/linux/apache2/php7.2/Makefile index 49e2ea0dc..82c5a2de6 100644 --- a/linux/apache2/php7.2/Makefile +++ b/linux/apache2/php7.2/Makefile @@ -1,4 +1,5 @@ -all: apache2 -apache2: - docker build --compress -t epicmorg/apache2:php7.2 . - docker push epicmorg/apache2:php7.2 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/apache2/php7.2/docker-compose.yml b/linux/apache2/php7.2/docker-compose.yml new file mode 100644 index 000000000..332da33ab --- /dev/null +++ b/linux/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.3/Makefile b/linux/apache2/php7.3/Makefile index dac5e2861..82c5a2de6 100644 --- a/linux/apache2/php7.3/Makefile +++ b/linux/apache2/php7.3/Makefile @@ -1,4 +1,5 @@ -all: apache2 -apache2: - docker build --compress -t epicmorg/apache2:php7.3 . - docker push epicmorg/apache2:php7.3 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/apache2/php7.3/docker-compose.yml b/linux/apache2/php7.3/docker-compose.yml new file mode 100644 index 000000000..5b1f13f1f --- /dev/null +++ b/linux/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.4/Makefile b/linux/apache2/php7.4/Makefile index 6b382fa7a..82c5a2de6 100644 --- a/linux/apache2/php7.4/Makefile +++ b/linux/apache2/php7.4/Makefile @@ -1,4 +1,5 @@ -all: apache2 -apache2: - docker build --compress -t epicmorg/apache2:php7.4 . - docker push epicmorg/apache2:php7.4 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/apache2/php7.4/docker-compose.yml b/linux/apache2/php7.4/docker-compose.yml new file mode 100644 index 000000000..e6723b69c --- /dev/null +++ b/linux/apache2/php7.4/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/apache2:php7.4" + build: + context: . From ee6878a5dd6434c06bbb13d54fd9f6c1eefd8c5c Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:29:22 +0300 Subject: [PATCH 047/144] mattermost migrated --- linux/mattermost/latest/Makefile | 9 +++++---- linux/mattermost/latest/docker-compose.yml | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 linux/mattermost/latest/docker-compose.yml diff --git a/linux/mattermost/latest/Makefile b/linux/mattermost/latest/Makefile index cac53052c..82c5a2de6 100644 --- a/linux/mattermost/latest/Makefile +++ b/linux/mattermost/latest/Makefile @@ -1,4 +1,5 @@ -all: mmed -mmed: - docker build --compress -t epicmorg/mattermost-enterprise-edition . - docker push epicmorg/mattermost-enterprise-edition:latest +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/mattermost/latest/docker-compose.yml b/linux/mattermost/latest/docker-compose.yml new file mode 100644 index 000000000..d778bcbd9 --- /dev/null +++ b/linux/mattermost/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/mattermost-enterprise-edition:latest" + build: + context: . From 72c3c488ef2d77b36834418f71dca97004a5715f Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:30:31 +0300 Subject: [PATCH 048/144] testrail migrated to new format --- linux/testrail/latest/Makefile | 9 ++++----- linux/testrail/latest/docker-compose.yml | 6 ++++++ 2 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 linux/testrail/latest/docker-compose.yml diff --git a/linux/testrail/latest/Makefile b/linux/testrail/latest/Makefile index 6e602e8f8..82c5a2de6 100644 --- a/linux/testrail/latest/Makefile +++ b/linux/testrail/latest/Makefile @@ -1,6 +1,5 @@ -all: tr - -tr: - docker build --compress -t epicmorg/testrail . - docker push epicmorg/testrail +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/testrail/latest/docker-compose.yml b/linux/testrail/latest/docker-compose.yml new file mode 100644 index 000000000..288250f78 --- /dev/null +++ b/linux/testrail/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/testrail:latest" + build: + context: . From cd7f9dcdcb0bc597474f98f86dc5994cbb89e0f2 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:31:35 +0300 Subject: [PATCH 049/144] vk2discord migrated to new format --- linux/vk2discord/latest/Makefile | 8 ++++---- linux/vk2discord/latest/docker-compose.yml | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 linux/vk2discord/latest/docker-compose.yml diff --git a/linux/vk2discord/latest/Makefile b/linux/vk2discord/latest/Makefile index 8d17ab096..82c5a2de6 100644 --- a/linux/vk2discord/latest/Makefile +++ b/linux/vk2discord/latest/Makefile @@ -1,5 +1,5 @@ -all: vk2d +all: app -vk2d: - docker build --compress -t epicmorg/vk2discord:latest . - docker push epicmorg/vk2discord +app: + docker-compose build --compress + docker-compose push diff --git a/linux/vk2discord/latest/docker-compose.yml b/linux/vk2discord/latest/docker-compose.yml new file mode 100644 index 000000000..a1323a462 --- /dev/null +++ b/linux/vk2discord/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vk2discord:latest" + build: + context: . From 63f70102ecc322ab91508eb18cf8dbb0db8c2cc7 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:35:44 +0300 Subject: [PATCH 050/144] zabbix migrated to new format --- linux/zabbix/agent/Makefile | 9 +++++---- linux/zabbix/agent/docker-compose.yml | 6 ++++++ linux/zabbix/java-gateway/Makefile | 9 +++++---- linux/zabbix/java-gateway/docker-compose.yml | 6 ++++++ linux/zabbix/proxy/Makefile | 9 +++++---- linux/zabbix/proxy/docker-compose.yml | 6 ++++++ linux/zabbix/server/Makefile | 9 +++++---- linux/zabbix/server/docker-compose.yml | 6 ++++++ linux/zabbix/web/Makefile | 8 ++++---- linux/zabbix/web/docker-compose.yml | 6 ++++++ 10 files changed, 54 insertions(+), 20 deletions(-) create mode 100644 linux/zabbix/agent/docker-compose.yml create mode 100644 linux/zabbix/java-gateway/docker-compose.yml create mode 100644 linux/zabbix/proxy/docker-compose.yml create mode 100644 linux/zabbix/server/docker-compose.yml create mode 100644 linux/zabbix/web/docker-compose.yml diff --git a/linux/zabbix/agent/Makefile b/linux/zabbix/agent/Makefile index f10f5e9e0..82c5a2de6 100644 --- a/linux/zabbix/agent/Makefile +++ b/linux/zabbix/agent/Makefile @@ -1,4 +1,5 @@ -all: za -za: - docker build --compress -t epicmorg/zabbix-agent . - docker push epicmorg/zabbix-agent +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/zabbix/agent/docker-compose.yml b/linux/zabbix/agent/docker-compose.yml new file mode 100644 index 000000000..711b522db --- /dev/null +++ b/linux/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/zabbix/java-gateway/Makefile b/linux/zabbix/java-gateway/Makefile index 89dc801f9..82c5a2de6 100644 --- a/linux/zabbix/java-gateway/Makefile +++ b/linux/zabbix/java-gateway/Makefile @@ -1,4 +1,5 @@ -all: zjg -zjg: - docker build --compress -t epicmorg/zabbix-java-gateway . - docker push epicmorg/zabbix-java-gateway +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/zabbix/java-gateway/docker-compose.yml b/linux/zabbix/java-gateway/docker-compose.yml new file mode 100644 index 000000000..7a2a51cd1 --- /dev/null +++ b/linux/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/proxy/Makefile b/linux/zabbix/proxy/Makefile index 33412b137..82c5a2de6 100644 --- a/linux/zabbix/proxy/Makefile +++ b/linux/zabbix/proxy/Makefile @@ -1,4 +1,5 @@ -all: zp -zp: - docker build --compress -t epicmorg/zabbix-proxy-sqlite3 . - docker push epicmorg/zabbix-proxy-sqlite3 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/zabbix/proxy/docker-compose.yml b/linux/zabbix/proxy/docker-compose.yml new file mode 100644 index 000000000..0f07d0583 --- /dev/null +++ b/linux/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/server/Makefile b/linux/zabbix/server/Makefile index d2e05ebda..82c5a2de6 100644 --- a/linux/zabbix/server/Makefile +++ b/linux/zabbix/server/Makefile @@ -1,4 +1,5 @@ -all: zsm -zsm: - docker build --compress -t epicmorg/zabbix-server-mysql . - docker push epicmorg/zabbix-server-mysql +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/zabbix/server/docker-compose.yml b/linux/zabbix/server/docker-compose.yml new file mode 100644 index 000000000..c0e262612 --- /dev/null +++ b/linux/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/web/Makefile b/linux/zabbix/web/Makefile index 50ef03ca7..82c5a2de6 100644 --- a/linux/zabbix/web/Makefile +++ b/linux/zabbix/web/Makefile @@ -1,5 +1,5 @@ -all: zwam -zwam: - docker build --compress -t epicmorg/zabbix-web-apache-mysql . - docker push epicmorg/zabbix-web-apache-mysql +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/zabbix/web/docker-compose.yml b/linux/zabbix/web/docker-compose.yml new file mode 100644 index 000000000..d8c673d98 --- /dev/null +++ b/linux/zabbix/web/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/zabbix-web-apache-mysql:latest" + build: + context: . From 36cf4445883780a4c2a32567babd45845f0241bc Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:37:37 +0300 Subject: [PATCH 051/144] teamcity migrated to new format --- linux/teamcity/agent/Makefile | 9 +++++---- linux/teamcity/agent/docker-compose.yml | 6 ++++++ linux/teamcity/server/Makefile | 9 +++++---- linux/teamcity/server/docker-compose.yml | 6 ++++++ 4 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 linux/teamcity/agent/docker-compose.yml create mode 100644 linux/teamcity/server/docker-compose.yml diff --git a/linux/teamcity/agent/Makefile b/linux/teamcity/agent/Makefile index a1e173ea9..82c5a2de6 100644 --- a/linux/teamcity/agent/Makefile +++ b/linux/teamcity/agent/Makefile @@ -1,4 +1,5 @@ -all: tca -tca: - docker build --compress -t epicmorg/teamcity-agent:latest . - docker push epicmorg/teamcity-agent:latest +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/docker-compose.yml b/linux/teamcity/agent/docker-compose.yml new file mode 100644 index 000000000..9190c2827 --- /dev/null +++ b/linux/teamcity/agent/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:latest" + build: + context: . diff --git a/linux/teamcity/server/Makefile b/linux/teamcity/server/Makefile index ef347f552..82c5a2de6 100644 --- a/linux/teamcity/server/Makefile +++ b/linux/teamcity/server/Makefile @@ -1,4 +1,5 @@ -all: tcs -tcs: - docker build --compress -t epicmorg/teamcity-server:latest . - docker push epicmorg/teamcity-server:latest +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/server/docker-compose.yml b/linux/teamcity/server/docker-compose.yml new file mode 100644 index 000000000..ca5f2ec95 --- /dev/null +++ b/linux/teamcity/server/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-server:latest" + build: + context: . From 1a95d6990c3700bb829cb03c70eba06fce838419 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:41:35 +0300 Subject: [PATCH 052/144] qbittorrent migrated to new format --- linux/qbittorrent/latest/Makefile | 9 ++++--- .../latest/docker-compose.example.yml | 18 +++++++++++++ linux/qbittorrent/latest/docker-compose.yml | 26 +++++++------------ linux/qbittorrent/stable/Makefile | 9 ++++--- linux/qbittorrent/stable/docker-compose.yml | 22 ++++------------ 5 files changed, 42 insertions(+), 42 deletions(-) create mode 100644 linux/qbittorrent/latest/docker-compose.example.yml diff --git a/linux/qbittorrent/latest/Makefile b/linux/qbittorrent/latest/Makefile index 0f3f4b602..82c5a2de6 100644 --- a/linux/qbittorrent/latest/Makefile +++ b/linux/qbittorrent/latest/Makefile @@ -1,4 +1,5 @@ -all: emgqb -emgqb: - docker build --compress -t epicmorg/qbittorrent:latest . - docker push epicmorg/qbittorrent:latest \ No newline at end of file +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/qbittorrent/latest/docker-compose.example.yml b/linux/qbittorrent/latest/docker-compose.example.yml new file mode 100644 index 000000000..2979ec108 --- /dev/null +++ b/linux/qbittorrent/latest/docker-compose.example.yml @@ -0,0 +1,18 @@ +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/qbittorrent/latest/docker-compose.yml b/linux/qbittorrent/latest/docker-compose.yml index 2979ec108..0c0196593 100644 --- a/linux/qbittorrent/latest/docker-compose.yml +++ b/linux/qbittorrent/latest/docker-compose.yml @@ -1,18 +1,10 @@ -version: '3.7' +version: '3.9' 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 - + app: + image: "epicmorg/qbittorrent:latest" + build: + context: . + app-unstable: + image: "epicmorg/qbittorrent:unstable" + build: + context: . diff --git a/linux/qbittorrent/stable/Makefile b/linux/qbittorrent/stable/Makefile index c5d44e370..82c5a2de6 100644 --- a/linux/qbittorrent/stable/Makefile +++ b/linux/qbittorrent/stable/Makefile @@ -1,4 +1,5 @@ -all: emgqb -emgqb: - docker build --compress -t epicmorg/qbittorrent:stable . - docker push epicmorg/qbittorrent:stable +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/qbittorrent/stable/docker-compose.yml b/linux/qbittorrent/stable/docker-compose.yml index 2979ec108..7d9e5f914 100644 --- a/linux/qbittorrent/stable/docker-compose.yml +++ b/linux/qbittorrent/stable/docker-compose.yml @@ -1,18 +1,6 @@ -version: '3.7' +version: '3.9' 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 - + app: + image: "epicmorg/qbittorrent:stable" + build: + context: . From cf37206cf259c9d48f34b1ae51e3fd6b3db27f78 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 02:47:18 +0300 Subject: [PATCH 053/144] nginx containers --- linux/nginx/1.20.0/main/.env | 2 + linux/nginx/1.20.0/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.20.0/main/Makefile | 5 + linux/nginx/1.20.0/main/README.md | 30 ++ linux/nginx/1.20.0/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.20.0/main/pre/luajit2-description-pak | 1 + .../1.20.0/main/pre/nginx-description-pak | 1 + linux/nginx/1.20.0/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.20.0/php/.env | 2 + linux/nginx/1.20.0/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.20.0/php/Makefile | 5 + linux/nginx/1.20.0/php/README.md | 30 ++ linux/nginx/1.20.0/php/docker-compose.yml | 9 + linux/nginx/1.20.0/rtmp-hls/.env | 2 + linux/nginx/1.20.0/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.20.0/rtmp-hls/Makefile | 5 + linux/nginx/1.20.0/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.20.0/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../1.20.0/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.20.0/rtmp-hls/docker-compose.yml | 9 + linux/nginx/1.20.0/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.20.0/rtmp-hls/players/hls.html | 23 ++ .../1.20.0/rtmp-hls/players/hls_hlsjs.html | 41 +++ linux/nginx/1.20.0/rtmp-hls/players/rtmp.html | 24 ++ .../1.20.0/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ linux/nginx/1.20.1/main/.env | 2 + linux/nginx/1.20.1/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.20.1/main/Makefile | 5 + linux/nginx/1.20.1/main/README.md | 30 ++ linux/nginx/1.20.1/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.20.1/main/pre/luajit2-description-pak | 1 + .../1.20.1/main/pre/nginx-description-pak | 1 + linux/nginx/1.20.1/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.20.1/php/.env | 2 + linux/nginx/1.20.1/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.20.1/php/Makefile | 5 + linux/nginx/1.20.1/php/README.md | 30 ++ linux/nginx/1.20.1/php/docker-compose.yml | 9 + linux/nginx/1.20.1/rtmp-hls/.env | 2 + linux/nginx/1.20.1/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.20.1/rtmp-hls/Makefile | 5 + linux/nginx/1.20.1/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.20.1/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.20.1/rtmp-hls/docker-compose.yml | 9 + linux/nginx/1.20.1/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.20.1/rtmp-hls/players/hls.html | 23 ++ .../1.20.1/rtmp-hls/players/hls_hlsjs.html | 41 +++ linux/nginx/1.20.1/rtmp-hls/players/rtmp.html | 24 ++ .../1.20.1/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ 60 files changed, 2548 insertions(+) create mode 100644 linux/nginx/1.20.0/main/.env create mode 100644 linux/nginx/1.20.0/main/Dockerfile create mode 100644 linux/nginx/1.20.0/main/Makefile create mode 100644 linux/nginx/1.20.0/main/README.md create mode 100644 linux/nginx/1.20.0/main/docker-compose.yml create mode 100644 linux/nginx/1.20.0/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.20.0/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.20.0/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.20.0/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.20.0/php/.env create mode 100644 linux/nginx/1.20.0/php/Dockerfile create mode 100644 linux/nginx/1.20.0/php/Makefile create mode 100644 linux/nginx/1.20.0/php/README.md create mode 100644 linux/nginx/1.20.0/php/docker-compose.yml create mode 100644 linux/nginx/1.20.0/rtmp-hls/.env create mode 100644 linux/nginx/1.20.0/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.20.0/rtmp-hls/Makefile create mode 100644 linux/nginx/1.20.0/rtmp-hls/README.md create mode 100644 linux/nginx/1.20.0/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.20.0/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.20.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.20.0/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.20.0/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.20.0/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.20.0/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.20.0/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.20.0/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.stretch.list create mode 100644 linux/nginx/1.20.1/main/.env create mode 100644 linux/nginx/1.20.1/main/Dockerfile create mode 100644 linux/nginx/1.20.1/main/Makefile create mode 100644 linux/nginx/1.20.1/main/README.md create mode 100644 linux/nginx/1.20.1/main/docker-compose.yml create mode 100644 linux/nginx/1.20.1/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.20.1/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.20.1/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.20.1/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.20.1/php/.env create mode 100644 linux/nginx/1.20.1/php/Dockerfile create mode 100644 linux/nginx/1.20.1/php/Makefile create mode 100644 linux/nginx/1.20.1/php/README.md create mode 100644 linux/nginx/1.20.1/php/docker-compose.yml create mode 100644 linux/nginx/1.20.1/rtmp-hls/.env create mode 100644 linux/nginx/1.20.1/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.20.1/rtmp-hls/Makefile create mode 100644 linux/nginx/1.20.1/rtmp-hls/README.md create mode 100644 linux/nginx/1.20.1/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.20.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.20.1/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.20.1/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.20.1/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.20.1/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.20.1/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.20.0/main/.env b/linux/nginx/1.20.0/main/.env new file mode 100644 index 000000000..868f39af4 --- /dev/null +++ b/linux/nginx/1.20.0/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.20.0 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.20.0.tar.gz diff --git a/linux/nginx/1.20.0/main/Dockerfile b/linux/nginx/1.20.0/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.20.0/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.20.0/main/Makefile b/linux/nginx/1.20.0/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.20.0/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.20.0/main/README.md b/linux/nginx/1.20.0/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/main/docker-compose.yml b/linux/nginx/1.20.0/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/main/pre/ip2location-description-pak b/linux/nginx/1.20.0/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.20.0/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.20.0/main/pre/luajit2-description-pak b/linux/nginx/1.20.0/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/nginx/1.20.0/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.20.0/main/pre/nginx-description-pak b/linux/nginx/1.20.0/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.20.0/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.20.0/php/Makefile b/linux/nginx/1.20.0/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.20.0/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.20.0/php/README.md b/linux/nginx/1.20.0/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/php/docker-compose.yml b/linux/nginx/1.20.0/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/rtmp-hls/.env b/linux/nginx/1.20.0/rtmp-hls/.env new file mode 100644 index 000000000..868f39af4 --- /dev/null +++ b/linux/nginx/1.20.0/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.20.0 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.20.0.tar.gz diff --git a/linux/nginx/1.20.0/rtmp-hls/Dockerfile b/linux/nginx/1.20.0/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/rtmp-hls/Makefile b/linux/nginx/1.20.0/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.20.0/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.20.0/rtmp-hls/README.md b/linux/nginx/1.20.0/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/rtmp-hls/conf/nginx.conf b/linux/nginx/1.20.0/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.20.0/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.20.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/rtmp-hls/docker-compose.yml b/linux/nginx/1.20.0/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/nginx/1.20.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/nginx/1.20.0/rtmp-hls/players/dash.html b/linux/nginx/1.20.0/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.20.0/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.20.0/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.20.0/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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/nginx/1.20.1/main/.env b/linux/nginx/1.20.1/main/.env new file mode 100644 index 000000000..7688d73d2 --- /dev/null +++ b/linux/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/nginx/1.20.1/main/Dockerfile b/linux/nginx/1.20.1/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.20.1/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.20.1/main/Makefile b/linux/nginx/1.20.1/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.20.1/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.20.1/main/README.md b/linux/nginx/1.20.1/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.20.1/main/docker-compose.yml b/linux/nginx/1.20.1/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/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/nginx/1.20.1/main/pre/ip2location-description-pak b/linux/nginx/1.20.1/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.20.1/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.20.1/main/pre/luajit2-description-pak b/linux/nginx/1.20.1/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/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/nginx/1.20.1/main/pre/nginx-description-pak b/linux/nginx/1.20.1/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/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/nginx/1.20.1/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.20.1/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.20.1/php/Makefile b/linux/nginx/1.20.1/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.20.1/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.20.1/php/README.md b/linux/nginx/1.20.1/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.20.1/php/docker-compose.yml b/linux/nginx/1.20.1/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/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/nginx/1.20.1/rtmp-hls/.env b/linux/nginx/1.20.1/rtmp-hls/.env new file mode 100644 index 000000000..7688d73d2 --- /dev/null +++ b/linux/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/nginx/1.20.1/rtmp-hls/Dockerfile b/linux/nginx/1.20.1/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/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/nginx/1.20.1/rtmp-hls/Makefile b/linux/nginx/1.20.1/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.20.1/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.20.1/rtmp-hls/README.md b/linux/nginx/1.20.1/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/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/nginx/1.20.1/rtmp-hls/conf/nginx.conf b/linux/nginx/1.20.1/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/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/nginx/1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/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/nginx/1.20.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.20.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/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/nginx/1.20.1/rtmp-hls/docker-compose.yml b/linux/nginx/1.20.1/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/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/nginx/1.20.1/rtmp-hls/players/dash.html b/linux/nginx/1.20.1/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.20.1/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

+ + + + + + + diff --git a/linux/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html b/linux/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/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/nginx/1.20.1/rtmp-hls/players/rtmp.html b/linux/nginx/1.20.1/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/nginx/1.20.1/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.20.1/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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 From 19867341987cf7bd5865f03cddcb7ab3f6a91066 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 03:03:23 +0300 Subject: [PATCH 054/144] nginx images --- linux/nginx/1.17.10/main/.env | 2 + linux/nginx/1.17.10/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.17.10/main/Makefile | 5 + linux/nginx/1.17.10/main/README.md | 30 ++ linux/nginx/1.17.10/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.17.10/main/pre/luajit2-description-pak | 1 + .../1.17.10/main/pre/nginx-description-pak | 1 + .../nginx/1.17.10/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.17.10/php/.env | 2 + linux/nginx/1.17.10/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.17.10/php/Makefile | 5 + linux/nginx/1.17.10/php/README.md | 30 ++ linux/nginx/1.17.10/php/docker-compose.yml | 9 + linux/nginx/1.17.10/rtmp-hls/.env | 2 + linux/nginx/1.17.10/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.17.10/rtmp-hls/Makefile | 5 + linux/nginx/1.17.10/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.17.10/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.17.10/rtmp-hls/docker-compose.yml | 9 + .../nginx/1.17.10/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.17.10/rtmp-hls/players/hls.html | 23 ++ .../1.17.10/rtmp-hls/players/hls_hlsjs.html | 41 +++ .../nginx/1.17.10/rtmp-hls/players/rtmp.html | 24 ++ .../1.17.10/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ linux/nginx/1.18.0/main/.env | 2 + linux/nginx/1.18.0/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.18.0/main/Makefile | 5 + linux/nginx/1.18.0/main/README.md | 30 ++ linux/nginx/1.18.0/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.18.0/main/pre/luajit2-description-pak | 1 + .../1.18.0/main/pre/nginx-description-pak | 1 + linux/nginx/1.18.0/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.18.0/php/.env | 2 + linux/nginx/1.18.0/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.18.0/php/Makefile | 5 + linux/nginx/1.18.0/php/README.md | 30 ++ linux/nginx/1.18.0/php/docker-compose.yml | 9 + linux/nginx/1.18.0/rtmp-hls/.env | 2 + linux/nginx/1.18.0/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.18.0/rtmp-hls/Makefile | 5 + linux/nginx/1.18.0/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.18.0/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.18.0/rtmp-hls/docker-compose.yml | 9 + linux/nginx/1.18.0/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.18.0/rtmp-hls/players/hls.html | 23 ++ .../1.18.0/rtmp-hls/players/hls_hlsjs.html | 41 +++ linux/nginx/1.18.0/rtmp-hls/players/rtmp.html | 24 ++ .../1.18.0/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ linux/nginx/1.19.10/main/.env | 2 + linux/nginx/1.19.10/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.19.10/main/Makefile | 5 + linux/nginx/1.19.10/main/README.md | 30 ++ linux/nginx/1.19.10/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.19.10/main/pre/luajit2-description-pak | 1 + .../1.19.10/main/pre/nginx-description-pak | 1 + .../nginx/1.19.10/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.19.10/php/.env | 2 + linux/nginx/1.19.10/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.19.10/php/Makefile | 5 + linux/nginx/1.19.10/php/README.md | 30 ++ linux/nginx/1.19.10/php/docker-compose.yml | 9 + linux/nginx/1.19.10/rtmp-hls/.env | 2 + linux/nginx/1.19.10/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.19.10/rtmp-hls/Makefile | 5 + linux/nginx/1.19.10/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.19.10/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.19.10/rtmp-hls/docker-compose.yml | 9 + .../nginx/1.19.10/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.19.10/rtmp-hls/players/hls.html | 23 ++ .../1.19.10/rtmp-hls/players/hls_hlsjs.html | 41 +++ .../nginx/1.19.10/rtmp-hls/players/rtmp.html | 24 ++ .../1.19.10/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ 90 files changed, 3822 insertions(+) create mode 100644 linux/nginx/1.17.10/main/.env create mode 100644 linux/nginx/1.17.10/main/Dockerfile create mode 100644 linux/nginx/1.17.10/main/Makefile create mode 100644 linux/nginx/1.17.10/main/README.md create mode 100644 linux/nginx/1.17.10/main/docker-compose.yml create mode 100644 linux/nginx/1.17.10/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.17.10/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.17.10/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.17.10/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.17.10/php/.env create mode 100644 linux/nginx/1.17.10/php/Dockerfile create mode 100644 linux/nginx/1.17.10/php/Makefile create mode 100644 linux/nginx/1.17.10/php/README.md create mode 100644 linux/nginx/1.17.10/php/docker-compose.yml create mode 100644 linux/nginx/1.17.10/rtmp-hls/.env create mode 100644 linux/nginx/1.17.10/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.17.10/rtmp-hls/Makefile create mode 100644 linux/nginx/1.17.10/rtmp-hls/README.md create mode 100644 linux/nginx/1.17.10/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.17.10/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.17.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.17.10/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.17.10/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.17.10/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.17.10/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.17.10/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list create mode 100644 linux/nginx/1.18.0/main/.env create mode 100644 linux/nginx/1.18.0/main/Dockerfile create mode 100644 linux/nginx/1.18.0/main/Makefile create mode 100644 linux/nginx/1.18.0/main/README.md create mode 100644 linux/nginx/1.18.0/main/docker-compose.yml create mode 100644 linux/nginx/1.18.0/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.18.0/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.18.0/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.18.0/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.18.0/php/.env create mode 100644 linux/nginx/1.18.0/php/Dockerfile create mode 100644 linux/nginx/1.18.0/php/Makefile create mode 100644 linux/nginx/1.18.0/php/README.md create mode 100644 linux/nginx/1.18.0/php/docker-compose.yml create mode 100644 linux/nginx/1.18.0/rtmp-hls/.env create mode 100644 linux/nginx/1.18.0/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.18.0/rtmp-hls/Makefile create mode 100644 linux/nginx/1.18.0/rtmp-hls/README.md create mode 100644 linux/nginx/1.18.0/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.18.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.18.0/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.18.0/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.18.0/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.18.0/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.18.0/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list create mode 100644 linux/nginx/1.19.10/main/.env create mode 100644 linux/nginx/1.19.10/main/Dockerfile create mode 100644 linux/nginx/1.19.10/main/Makefile create mode 100644 linux/nginx/1.19.10/main/README.md create mode 100644 linux/nginx/1.19.10/main/docker-compose.yml create mode 100644 linux/nginx/1.19.10/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.19.10/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.19.10/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.19.10/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.19.10/php/.env create mode 100644 linux/nginx/1.19.10/php/Dockerfile create mode 100644 linux/nginx/1.19.10/php/Makefile create mode 100644 linux/nginx/1.19.10/php/README.md create mode 100644 linux/nginx/1.19.10/php/docker-compose.yml create mode 100644 linux/nginx/1.19.10/rtmp-hls/.env create mode 100644 linux/nginx/1.19.10/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.19.10/rtmp-hls/Makefile create mode 100644 linux/nginx/1.19.10/rtmp-hls/README.md create mode 100644 linux/nginx/1.19.10/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.19.10/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.19.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.19.10/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.19.10/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.19.10/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.19.10/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.19.10/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.17.10/main/.env b/linux/nginx/1.17.10/main/.env new file mode 100644 index 000000000..0349cbaaf --- /dev/null +++ b/linux/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/nginx/1.17.10/main/Dockerfile b/linux/nginx/1.17.10/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.17.10/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.17.10/main/Makefile b/linux/nginx/1.17.10/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.17.10/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.17.10/main/README.md b/linux/nginx/1.17.10/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.17.10/main/docker-compose.yml b/linux/nginx/1.17.10/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/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/nginx/1.17.10/main/pre/ip2location-description-pak b/linux/nginx/1.17.10/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.17.10/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.17.10/main/pre/luajit2-description-pak b/linux/nginx/1.17.10/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/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/nginx/1.17.10/main/pre/nginx-description-pak b/linux/nginx/1.17.10/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/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/nginx/1.17.10/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.17.10/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.17.10/php/Makefile b/linux/nginx/1.17.10/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.17.10/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.17.10/php/README.md b/linux/nginx/1.17.10/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.17.10/php/docker-compose.yml b/linux/nginx/1.17.10/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/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/nginx/1.17.10/rtmp-hls/.env b/linux/nginx/1.17.10/rtmp-hls/.env new file mode 100644 index 000000000..0349cbaaf --- /dev/null +++ b/linux/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/nginx/1.17.10/rtmp-hls/Dockerfile b/linux/nginx/1.17.10/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/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/nginx/1.17.10/rtmp-hls/Makefile b/linux/nginx/1.17.10/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.17.10/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.17.10/rtmp-hls/README.md b/linux/nginx/1.17.10/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/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/nginx/1.17.10/rtmp-hls/conf/nginx.conf b/linux/nginx/1.17.10/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/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/nginx/1.17.10/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.17.10/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/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/nginx/1.17.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.17.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/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/nginx/1.17.10/rtmp-hls/docker-compose.yml b/linux/nginx/1.17.10/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/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/nginx/1.17.10/rtmp-hls/players/dash.html b/linux/nginx/1.17.10/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.17.10/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

+ + + + + + + diff --git a/linux/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html b/linux/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/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/nginx/1.17.10/rtmp-hls/players/rtmp.html b/linux/nginx/1.17.10/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/nginx/1.17.10/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.17.10/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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/nginx/1.18.0/main/.env b/linux/nginx/1.18.0/main/.env new file mode 100644 index 000000000..841a1e5c4 --- /dev/null +++ b/linux/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/nginx/1.18.0/main/Dockerfile b/linux/nginx/1.18.0/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.18.0/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.18.0/main/Makefile b/linux/nginx/1.18.0/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.18.0/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.18.0/main/README.md b/linux/nginx/1.18.0/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.18.0/main/docker-compose.yml b/linux/nginx/1.18.0/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/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/nginx/1.18.0/main/pre/ip2location-description-pak b/linux/nginx/1.18.0/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.18.0/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.18.0/main/pre/luajit2-description-pak b/linux/nginx/1.18.0/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/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/nginx/1.18.0/main/pre/nginx-description-pak b/linux/nginx/1.18.0/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/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/nginx/1.18.0/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.18.0/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.18.0/php/Makefile b/linux/nginx/1.18.0/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.18.0/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.18.0/php/README.md b/linux/nginx/1.18.0/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.18.0/php/docker-compose.yml b/linux/nginx/1.18.0/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/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/nginx/1.18.0/rtmp-hls/.env b/linux/nginx/1.18.0/rtmp-hls/.env new file mode 100644 index 000000000..841a1e5c4 --- /dev/null +++ b/linux/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/nginx/1.18.0/rtmp-hls/Dockerfile b/linux/nginx/1.18.0/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/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/nginx/1.18.0/rtmp-hls/Makefile b/linux/nginx/1.18.0/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.18.0/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.18.0/rtmp-hls/README.md b/linux/nginx/1.18.0/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/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/nginx/1.18.0/rtmp-hls/conf/nginx.conf b/linux/nginx/1.18.0/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/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/nginx/1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/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/nginx/1.18.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.18.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/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/nginx/1.18.0/rtmp-hls/docker-compose.yml b/linux/nginx/1.18.0/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/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/nginx/1.18.0/rtmp-hls/players/dash.html b/linux/nginx/1.18.0/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.18.0/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

+ + + + + + + diff --git a/linux/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html b/linux/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/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/nginx/1.18.0/rtmp-hls/players/rtmp.html b/linux/nginx/1.18.0/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/nginx/1.18.0/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.18.0/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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/nginx/1.19.10/main/.env b/linux/nginx/1.19.10/main/.env new file mode 100644 index 000000000..25655a5b6 --- /dev/null +++ b/linux/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/nginx/1.19.10/main/Dockerfile b/linux/nginx/1.19.10/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.19.10/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.19.10/main/Makefile b/linux/nginx/1.19.10/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.19.10/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.19.10/main/README.md b/linux/nginx/1.19.10/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.19.10/main/docker-compose.yml b/linux/nginx/1.19.10/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/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/nginx/1.19.10/main/pre/ip2location-description-pak b/linux/nginx/1.19.10/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.19.10/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.19.10/main/pre/luajit2-description-pak b/linux/nginx/1.19.10/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/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/nginx/1.19.10/main/pre/nginx-description-pak b/linux/nginx/1.19.10/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/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/nginx/1.19.10/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.19.10/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.19.10/php/Makefile b/linux/nginx/1.19.10/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.19.10/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.19.10/php/README.md b/linux/nginx/1.19.10/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.19.10/php/docker-compose.yml b/linux/nginx/1.19.10/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/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/nginx/1.19.10/rtmp-hls/.env b/linux/nginx/1.19.10/rtmp-hls/.env new file mode 100644 index 000000000..25655a5b6 --- /dev/null +++ b/linux/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/nginx/1.19.10/rtmp-hls/Dockerfile b/linux/nginx/1.19.10/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/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/nginx/1.19.10/rtmp-hls/Makefile b/linux/nginx/1.19.10/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.19.10/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.19.10/rtmp-hls/README.md b/linux/nginx/1.19.10/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/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/nginx/1.19.10/rtmp-hls/conf/nginx.conf b/linux/nginx/1.19.10/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/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/nginx/1.19.10/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.19.10/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/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/nginx/1.19.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.19.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/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/nginx/1.19.10/rtmp-hls/docker-compose.yml b/linux/nginx/1.19.10/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/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/nginx/1.19.10/rtmp-hls/players/dash.html b/linux/nginx/1.19.10/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.19.10/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

+ + + + + + + diff --git a/linux/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html b/linux/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/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/nginx/1.19.10/rtmp-hls/players/rtmp.html b/linux/nginx/1.19.10/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/nginx/1.19.10/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.19.10/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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 From 574b928d8b2b6567ad970ade0b34d41d45269fc4 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 03:20:29 +0300 Subject: [PATCH 055/144] Update README.md --- README.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 94e942d31..5a1aae4dd 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,11 @@ Containers was Splited to another sub-repositories. Now current repo will be con | ` ` | [![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 +# Stargazers +[![Stargazers repo roster for @nastyox/Repo-Roster](https://reporoster.com/stars/EpicMorg/docker-scripts)](https://github.com/EpicMorg/docker-scripts/stargazers) -![](https://raw.githubusercontent.com/EpicMorg/docker-scripts/master/.github/docker-scripts.png) +# Forkers +[![Forkers repo roster for @nastyox/Repo-Roster](https://reporoster.com/forks/EpicMorg/docker-scripts)](https://github.com/EpicMorg/docker-scripts/network/members) # Some popular products [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B81CUI4) @@ -29,9 +30,9 @@ Containers was Splited to another sub-repositories. Now current repo will be con | [![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. +| [![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. @@ -40,8 +41,12 @@ Containers was Splited to another sub-repositories. Now current repo will be con | [![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) + -## Thanks +# ↳ Special Thanks: * [@Aleks-Z](https://github.com/Aleks-Z) * [@alex4rks](https://github.com/alex4rks) From 14ee6363c2ae00239cdcd7de89058bd93615dfeb Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 03:23:11 +0300 Subject: [PATCH 056/144] Update README.md --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5a1aae4dd..a218fb8d2 100644 --- a/README.md +++ b/README.md @@ -17,12 +17,6 @@ Containers was Splited to another sub-repositories. Now current repo will be con | ` ` | [![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) | | -# Stargazers -[![Stargazers repo roster for @nastyox/Repo-Roster](https://reporoster.com/stars/EpicMorg/docker-scripts)](https://github.com/EpicMorg/docker-scripts/stargazers) - -# Forkers -[![Forkers repo roster for @nastyox/Repo-Roster](https://reporoster.com/forks/EpicMorg/docker-scripts)](https://github.com/EpicMorg/docker-scripts/network/members) - # Some popular products [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B81CUI4) | Application | Pulls | Notes @@ -45,6 +39,11 @@ Containers was Splited to another sub-repositories. Now current repo will be con ![](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: From c107354d0e03bf0a6bc3685910c08475741c2f1a Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 18:59:29 +0300 Subject: [PATCH 057/144] nginx links --- linux/nginx/links.txt | 541 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 541 insertions(+) create mode 100644 linux/nginx/links.txt diff --git a/linux/nginx/links.txt b/linux/nginx/links.txt new file mode 100644 index 000000000..3e5fd14e0 --- /dev/null +++ b/linux/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.0.tar.gz \ No newline at end of file From 6b271619a3cbe77fc967d79900c372df830f707f Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 18:59:39 +0300 Subject: [PATCH 058/144] nginx versions --- linux/nginx/1.14.2/main/.env | 2 + .../nginx/{1.20.0 => 1.14.2}/main/Dockerfile | 0 linux/nginx/{1.20.0 => 1.14.2}/main/Makefile | 0 linux/nginx/{1.20.0 => 1.14.2}/main/README.md | 0 .../main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../main/pre/luajit2-description-pak | 0 .../main/pre/nginx-description-pak | 0 .../main/pre/ngninx.pre.tar.gz | Bin linux/nginx/1.14.2/php/.env | 2 + linux/nginx/{1.20.0 => 1.14.2}/php/Dockerfile | 0 linux/nginx/{1.20.0 => 1.14.2}/php/Makefile | 0 linux/nginx/{1.20.0 => 1.14.2}/php/README.md | 0 .../{1.20.0 => 1.14.2}/php/docker-compose.yml | 0 linux/nginx/1.14.2/rtmp-hls/.env | 2 + .../{1.20.0 => 1.14.2}/rtmp-hls/Dockerfile | 0 .../{1.20.0 => 1.14.2}/rtmp-hls/Makefile | 0 .../{1.20.0 => 1.14.2}/rtmp-hls/README.md | 0 .../rtmp-hls/conf/nginx.conf | 0 .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../rtmp-hls/docker-compose.yml | 0 .../rtmp-hls/players/dash.html | 0 .../rtmp-hls/players/hls.html | 0 .../rtmp-hls/players/hls_hlsjs.html | 0 .../rtmp-hls/players/rtmp.html | 0 .../rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/nginx/1.15.12/main/.env | 2 + linux/nginx/1.15.12/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.15.12/main/Makefile | 5 + linux/nginx/1.15.12/main/README.md | 30 ++ linux/nginx/1.15.12/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.15.12/main/pre/luajit2-description-pak | 1 + .../1.15.12/main/pre/nginx-description-pak | 1 + .../nginx/1.15.12/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.15.12/php/.env | 2 + linux/nginx/1.15.12/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.15.12/php/Makefile | 5 + linux/nginx/1.15.12/php/README.md | 30 ++ linux/nginx/1.15.12/php/docker-compose.yml | 9 + linux/nginx/1.15.12/rtmp-hls/.env | 2 + linux/nginx/1.15.12/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.15.12/rtmp-hls/Makefile | 5 + linux/nginx/1.15.12/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.15.12/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.15.12/rtmp-hls/docker-compose.yml | 9 + .../nginx/1.15.12/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.15.12/rtmp-hls/players/hls.html | 23 ++ .../1.15.12/rtmp-hls/players/hls_hlsjs.html | 41 +++ .../nginx/1.15.12/rtmp-hls/players/rtmp.html | 24 ++ .../1.15.12/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ linux/nginx/1.16.1/main/.env | 2 + linux/nginx/1.16.1/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.16.1/main/Makefile | 5 + linux/nginx/1.16.1/main/README.md | 30 ++ linux/nginx/1.16.1/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.16.1/main/pre/luajit2-description-pak | 1 + .../1.16.1/main/pre/nginx-description-pak | 1 + linux/nginx/1.16.1/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.16.1/php/.env | 2 + linux/nginx/1.16.1/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.16.1/php/Makefile | 5 + linux/nginx/1.16.1/php/README.md | 30 ++ linux/nginx/1.16.1/php/docker-compose.yml | 9 + linux/nginx/1.16.1/rtmp-hls/.env | 2 + linux/nginx/1.16.1/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.16.1/rtmp-hls/Makefile | 5 + linux/nginx/1.16.1/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.16.1/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.16.1/rtmp-hls/docker-compose.yml | 9 + linux/nginx/1.16.1/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.16.1/rtmp-hls/players/hls.html | 23 ++ .../1.16.1/rtmp-hls/players/hls_hlsjs.html | 41 +++ linux/nginx/1.16.1/rtmp-hls/players/rtmp.html | 24 ++ .../1.16.1/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ linux/nginx/1.20.0/main/.env | 2 - linux/nginx/1.20.0/php/.env | 2 - linux/nginx/1.20.0/rtmp-hls/.env | 2 - 93 files changed, 2554 insertions(+), 6 deletions(-) create mode 100644 linux/nginx/1.14.2/main/.env rename linux/nginx/{1.20.0 => 1.14.2}/main/Dockerfile (100%) rename linux/nginx/{1.20.0 => 1.14.2}/main/Makefile (100%) rename linux/nginx/{1.20.0 => 1.14.2}/main/README.md (100%) rename linux/nginx/{1.20.0 => 1.14.2}/main/docker-compose.yml (100%) rename linux/nginx/{1.20.0 => 1.14.2}/main/pre/ip2location-description-pak (100%) rename linux/nginx/{1.20.0 => 1.14.2}/main/pre/luajit2-description-pak (100%) rename linux/nginx/{1.20.0 => 1.14.2}/main/pre/nginx-description-pak (100%) rename linux/nginx/{1.20.0 => 1.14.2}/main/pre/ngninx.pre.tar.gz (100%) create mode 100644 linux/nginx/1.14.2/php/.env rename linux/nginx/{1.20.0 => 1.14.2}/php/Dockerfile (100%) rename linux/nginx/{1.20.0 => 1.14.2}/php/Makefile (100%) rename linux/nginx/{1.20.0 => 1.14.2}/php/README.md (100%) rename linux/nginx/{1.20.0 => 1.14.2}/php/docker-compose.yml (100%) create mode 100644 linux/nginx/1.14.2/rtmp-hls/.env rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/Dockerfile (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/Makefile (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/README.md (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/conf/nginx.conf (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/docker-compose.yml (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/players/dash.html (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/players/hls.html (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/players/rtmp.html (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/players/rtmp_hls.html (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/nginx/{1.20.0 => 1.14.2}/rtmp-hls/sources.list.d/sources.stretch.list (100%) create mode 100644 linux/nginx/1.15.12/main/.env create mode 100644 linux/nginx/1.15.12/main/Dockerfile create mode 100644 linux/nginx/1.15.12/main/Makefile create mode 100644 linux/nginx/1.15.12/main/README.md create mode 100644 linux/nginx/1.15.12/main/docker-compose.yml create mode 100644 linux/nginx/1.15.12/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.15.12/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.15.12/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.15.12/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.15.12/php/.env create mode 100644 linux/nginx/1.15.12/php/Dockerfile create mode 100644 linux/nginx/1.15.12/php/Makefile create mode 100644 linux/nginx/1.15.12/php/README.md create mode 100644 linux/nginx/1.15.12/php/docker-compose.yml create mode 100644 linux/nginx/1.15.12/rtmp-hls/.env create mode 100644 linux/nginx/1.15.12/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.15.12/rtmp-hls/Makefile create mode 100644 linux/nginx/1.15.12/rtmp-hls/README.md create mode 100644 linux/nginx/1.15.12/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.15.12/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.15.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.15.12/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.15.12/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.15.12/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.15.12/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.15.12/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list create mode 100644 linux/nginx/1.16.1/main/.env create mode 100644 linux/nginx/1.16.1/main/Dockerfile create mode 100644 linux/nginx/1.16.1/main/Makefile create mode 100644 linux/nginx/1.16.1/main/README.md create mode 100644 linux/nginx/1.16.1/main/docker-compose.yml create mode 100644 linux/nginx/1.16.1/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.16.1/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.16.1/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.16.1/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.16.1/php/.env create mode 100644 linux/nginx/1.16.1/php/Dockerfile create mode 100644 linux/nginx/1.16.1/php/Makefile create mode 100644 linux/nginx/1.16.1/php/README.md create mode 100644 linux/nginx/1.16.1/php/docker-compose.yml create mode 100644 linux/nginx/1.16.1/rtmp-hls/.env create mode 100644 linux/nginx/1.16.1/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.16.1/rtmp-hls/Makefile create mode 100644 linux/nginx/1.16.1/rtmp-hls/README.md create mode 100644 linux/nginx/1.16.1/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.16.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.16.1/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.16.1/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.16.1/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.16.1/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.16.1/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list delete mode 100644 linux/nginx/1.20.0/main/.env delete mode 100644 linux/nginx/1.20.0/php/.env delete mode 100644 linux/nginx/1.20.0/rtmp-hls/.env diff --git a/linux/nginx/1.14.2/main/.env b/linux/nginx/1.14.2/main/.env new file mode 100644 index 000000000..2885ba745 --- /dev/null +++ b/linux/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/nginx/1.20.0/main/Dockerfile b/linux/nginx/1.14.2/main/Dockerfile similarity index 100% rename from linux/nginx/1.20.0/main/Dockerfile rename to linux/nginx/1.14.2/main/Dockerfile diff --git a/linux/nginx/1.20.0/main/Makefile b/linux/nginx/1.14.2/main/Makefile similarity index 100% rename from linux/nginx/1.20.0/main/Makefile rename to linux/nginx/1.14.2/main/Makefile diff --git a/linux/nginx/1.20.0/main/README.md b/linux/nginx/1.14.2/main/README.md similarity index 100% rename from linux/nginx/1.20.0/main/README.md rename to linux/nginx/1.14.2/main/README.md diff --git a/linux/nginx/1.20.0/main/docker-compose.yml b/linux/nginx/1.14.2/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.20.0/main/docker-compose.yml rename to linux/nginx/1.14.2/main/docker-compose.yml diff --git a/linux/nginx/1.20.0/main/pre/ip2location-description-pak b/linux/nginx/1.14.2/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.20.0/main/pre/ip2location-description-pak rename to linux/nginx/1.14.2/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.20.0/main/pre/luajit2-description-pak b/linux/nginx/1.14.2/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.20.0/main/pre/luajit2-description-pak rename to linux/nginx/1.14.2/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.20.0/main/pre/nginx-description-pak b/linux/nginx/1.14.2/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.20.0/main/pre/nginx-description-pak rename to linux/nginx/1.14.2/main/pre/nginx-description-pak diff --git a/linux/nginx/1.20.0/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.14.2/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/1.20.0/main/pre/ngninx.pre.tar.gz rename to linux/nginx/1.14.2/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.14.2/php/.env b/linux/nginx/1.14.2/php/.env new file mode 100644 index 000000000..2885ba745 --- /dev/null +++ b/linux/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/nginx/1.20.0/php/Dockerfile b/linux/nginx/1.14.2/php/Dockerfile similarity index 100% rename from linux/nginx/1.20.0/php/Dockerfile rename to linux/nginx/1.14.2/php/Dockerfile diff --git a/linux/nginx/1.20.0/php/Makefile b/linux/nginx/1.14.2/php/Makefile similarity index 100% rename from linux/nginx/1.20.0/php/Makefile rename to linux/nginx/1.14.2/php/Makefile diff --git a/linux/nginx/1.20.0/php/README.md b/linux/nginx/1.14.2/php/README.md similarity index 100% rename from linux/nginx/1.20.0/php/README.md rename to linux/nginx/1.14.2/php/README.md diff --git a/linux/nginx/1.20.0/php/docker-compose.yml b/linux/nginx/1.14.2/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.20.0/php/docker-compose.yml rename to linux/nginx/1.14.2/php/docker-compose.yml diff --git a/linux/nginx/1.14.2/rtmp-hls/.env b/linux/nginx/1.14.2/rtmp-hls/.env new file mode 100644 index 000000000..2885ba745 --- /dev/null +++ b/linux/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/nginx/1.20.0/rtmp-hls/Dockerfile b/linux/nginx/1.14.2/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/Dockerfile rename to linux/nginx/1.14.2/rtmp-hls/Dockerfile diff --git a/linux/nginx/1.20.0/rtmp-hls/Makefile b/linux/nginx/1.14.2/rtmp-hls/Makefile similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/Makefile rename to linux/nginx/1.14.2/rtmp-hls/Makefile diff --git a/linux/nginx/1.20.0/rtmp-hls/README.md b/linux/nginx/1.14.2/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/README.md rename to linux/nginx/1.14.2/rtmp-hls/README.md diff --git a/linux/nginx/1.20.0/rtmp-hls/conf/nginx.conf b/linux/nginx/1.14.2/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/conf/nginx.conf rename to linux/nginx/1.14.2/rtmp-hls/conf/nginx.conf diff --git a/linux/nginx/1.20.0/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.14.2/rtmp-hls/conf/nginx_no-ffmpeg.conf similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/nginx/1.14.2/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/nginx/1.20.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.14.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/nginx/1.14.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.20.0/rtmp-hls/docker-compose.yml b/linux/nginx/1.14.2/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/docker-compose.yml rename to linux/nginx/1.14.2/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.20.0/rtmp-hls/players/dash.html b/linux/nginx/1.14.2/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/players/dash.html rename to linux/nginx/1.14.2/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.20.0/rtmp-hls/players/hls.html b/linux/nginx/1.14.2/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/players/hls.html rename to linux/nginx/1.14.2/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.20.0/rtmp-hls/players/hls_hlsjs.html b/linux/nginx/1.14.2/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/players/hls_hlsjs.html rename to linux/nginx/1.14.2/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/1.20.0/rtmp-hls/players/rtmp.html b/linux/nginx/1.14.2/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/players/rtmp.html rename to linux/nginx/1.14.2/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.20.0/rtmp-hls/players/rtmp_hls.html b/linux/nginx/1.14.2/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/players/rtmp_hls.html rename to linux/nginx/1.14.2/rtmp-hls/players/rtmp_hls.html diff --git a/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.14.2/rtmp-hls/sources.list.d/sources.buster.list similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.buster.list rename to linux/nginx/1.14.2/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.14.2/rtmp-hls/sources.list.d/sources.sid.list similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.sid.list rename to linux/nginx/1.14.2/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.14.2/rtmp-hls/sources.list.d/sources.stretch.list similarity index 100% rename from linux/nginx/1.20.0/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/nginx/1.14.2/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.15.12/main/.env b/linux/nginx/1.15.12/main/.env new file mode 100644 index 000000000..ba910de48 --- /dev/null +++ b/linux/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/nginx/1.15.12/main/Dockerfile b/linux/nginx/1.15.12/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.15.12/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.15.12/main/Makefile b/linux/nginx/1.15.12/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.15.12/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.15.12/main/README.md b/linux/nginx/1.15.12/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.15.12/main/docker-compose.yml b/linux/nginx/1.15.12/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/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/nginx/1.15.12/main/pre/ip2location-description-pak b/linux/nginx/1.15.12/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.15.12/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.15.12/main/pre/luajit2-description-pak b/linux/nginx/1.15.12/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/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/nginx/1.15.12/main/pre/nginx-description-pak b/linux/nginx/1.15.12/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/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/nginx/1.15.12/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.15.12/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.15.12/php/Makefile b/linux/nginx/1.15.12/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.15.12/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.15.12/php/README.md b/linux/nginx/1.15.12/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.15.12/php/docker-compose.yml b/linux/nginx/1.15.12/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/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/nginx/1.15.12/rtmp-hls/.env b/linux/nginx/1.15.12/rtmp-hls/.env new file mode 100644 index 000000000..ba910de48 --- /dev/null +++ b/linux/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/nginx/1.15.12/rtmp-hls/Dockerfile b/linux/nginx/1.15.12/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/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/nginx/1.15.12/rtmp-hls/Makefile b/linux/nginx/1.15.12/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.15.12/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.15.12/rtmp-hls/README.md b/linux/nginx/1.15.12/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/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/nginx/1.15.12/rtmp-hls/conf/nginx.conf b/linux/nginx/1.15.12/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/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/nginx/1.15.12/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.15.12/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/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/nginx/1.15.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.15.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/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/nginx/1.15.12/rtmp-hls/docker-compose.yml b/linux/nginx/1.15.12/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/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/nginx/1.15.12/rtmp-hls/players/dash.html b/linux/nginx/1.15.12/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.15.12/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

+ + + + + + + diff --git a/linux/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html b/linux/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/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/nginx/1.15.12/rtmp-hls/players/rtmp.html b/linux/nginx/1.15.12/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/nginx/1.15.12/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.15.12/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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/nginx/1.16.1/main/.env b/linux/nginx/1.16.1/main/.env new file mode 100644 index 000000000..0a94c2b81 --- /dev/null +++ b/linux/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/nginx/1.16.1/main/Dockerfile b/linux/nginx/1.16.1/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.16.1/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.16.1/main/Makefile b/linux/nginx/1.16.1/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.16.1/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.16.1/main/README.md b/linux/nginx/1.16.1/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.16.1/main/docker-compose.yml b/linux/nginx/1.16.1/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/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/nginx/1.16.1/main/pre/ip2location-description-pak b/linux/nginx/1.16.1/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.16.1/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.16.1/main/pre/luajit2-description-pak b/linux/nginx/1.16.1/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/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/nginx/1.16.1/main/pre/nginx-description-pak b/linux/nginx/1.16.1/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/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/nginx/1.16.1/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.16.1/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.16.1/php/Makefile b/linux/nginx/1.16.1/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.16.1/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.16.1/php/README.md b/linux/nginx/1.16.1/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/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/nginx/1.16.1/php/docker-compose.yml b/linux/nginx/1.16.1/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/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/nginx/1.16.1/rtmp-hls/.env b/linux/nginx/1.16.1/rtmp-hls/.env new file mode 100644 index 000000000..0a94c2b81 --- /dev/null +++ b/linux/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/nginx/1.16.1/rtmp-hls/Dockerfile b/linux/nginx/1.16.1/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/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/nginx/1.16.1/rtmp-hls/Makefile b/linux/nginx/1.16.1/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.16.1/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.16.1/rtmp-hls/README.md b/linux/nginx/1.16.1/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/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/nginx/1.16.1/rtmp-hls/conf/nginx.conf b/linux/nginx/1.16.1/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/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/nginx/1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/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/nginx/1.16.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.16.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/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/nginx/1.16.1/rtmp-hls/docker-compose.yml b/linux/nginx/1.16.1/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/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/nginx/1.16.1/rtmp-hls/players/dash.html b/linux/nginx/1.16.1/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.16.1/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

+ + + + + + + diff --git a/linux/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html b/linux/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html new file mode 100644 index 000000000..0237e7a52 --- /dev/null +++ b/linux/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/nginx/1.16.1/rtmp-hls/players/rtmp.html b/linux/nginx/1.16.1/rtmp-hls/players/rtmp.html new file mode 100644 index 000000000..d8ce85610 --- /dev/null +++ b/linux/nginx/1.16.1/rtmp-hls/players/rtmp.html @@ -0,0 +1,24 @@ + + + + + RTMP Live Streaming + Live Streaming + + + + + + + +

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.16.1/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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/nginx/1.20.0/main/.env b/linux/nginx/1.20.0/main/.env deleted file mode 100644 index 868f39af4..000000000 --- a/linux/nginx/1.20.0/main/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.20.0 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.20.0.tar.gz diff --git a/linux/nginx/1.20.0/php/.env b/linux/nginx/1.20.0/php/.env deleted file mode 100644 index 868f39af4..000000000 --- a/linux/nginx/1.20.0/php/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.20.0 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.20.0.tar.gz diff --git a/linux/nginx/1.20.0/rtmp-hls/.env b/linux/nginx/1.20.0/rtmp-hls/.env deleted file mode 100644 index 868f39af4..000000000 --- a/linux/nginx/1.20.0/rtmp-hls/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.20.0 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.20.0.tar.gz From 219b012ce364c02b54dfa8cca5e3536260adb2e5 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 19:04:53 +0300 Subject: [PATCH 059/144] postgres migrated to noew format --- linux/postgres/10/Makefile | 9 +++++---- linux/postgres/10/docker-compose.yml | 6 ++++++ linux/postgres/11/Makefile | 9 +++++---- linux/postgres/11/docker-compose.yml | 6 ++++++ linux/postgres/12/Makefile | 9 +++++---- linux/postgres/12/docker-compose.yml | 6 ++++++ linux/postgres/8.2/Makefile | 8 ++++---- linux/postgres/8.2/docker-compose.yml | 6 ++++++ linux/postgres/8.3/Makefile | 8 ++++---- linux/postgres/8.3/docker-compose.yml | 6 ++++++ linux/postgres/8.4/Makefile | 8 ++++---- linux/postgres/8.4/docker-compose.yml | 6 ++++++ linux/postgres/9.0/Makefile | 8 ++++---- linux/postgres/9.0/docker-compose.yml | 6 ++++++ linux/postgres/9.1/Makefile | 8 ++++---- linux/postgres/9.1/docker-compose.yml | 6 ++++++ linux/postgres/9.2/Makefile | 8 ++++---- linux/postgres/9.2/docker-compose.yml | 6 ++++++ linux/postgres/9.3/Makefile | 8 ++++---- linux/postgres/9.3/docker-compose.yml | 6 ++++++ linux/postgres/9.4/Makefile | 9 +++++---- linux/postgres/9.4/docker-compose.yml | 6 ++++++ linux/postgres/9.5/Makefile | 9 +++++---- linux/postgres/9.5/docker-compose.yml | 6 ++++++ linux/postgres/9.6/Makefile | 9 +++++---- linux/postgres/9.6/docker-compose.yml | 6 ++++++ linux/postgres/latest/Makefile | 9 +++++---- linux/postgres/latest/docker-compose.yml | 6 ++++++ 28 files changed, 147 insertions(+), 56 deletions(-) create mode 100644 linux/postgres/10/docker-compose.yml create mode 100644 linux/postgres/11/docker-compose.yml create mode 100644 linux/postgres/12/docker-compose.yml create mode 100644 linux/postgres/8.2/docker-compose.yml create mode 100644 linux/postgres/8.3/docker-compose.yml create mode 100644 linux/postgres/8.4/docker-compose.yml create mode 100644 linux/postgres/9.0/docker-compose.yml create mode 100644 linux/postgres/9.1/docker-compose.yml create mode 100644 linux/postgres/9.2/docker-compose.yml create mode 100644 linux/postgres/9.3/docker-compose.yml create mode 100644 linux/postgres/9.4/docker-compose.yml create mode 100644 linux/postgres/9.5/docker-compose.yml create mode 100644 linux/postgres/9.6/docker-compose.yml create mode 100644 linux/postgres/latest/docker-compose.yml diff --git a/linux/postgres/10/Makefile b/linux/postgres/10/Makefile index 26d5594b1..82c5a2de6 100644 --- a/linux/postgres/10/Makefile +++ b/linux/postgres/10/Makefile @@ -1,4 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:10 . - docker push epicmorg/postgres:10 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/10/docker-compose.yml b/linux/postgres/10/docker-compose.yml new file mode 100644 index 000000000..6362512b8 --- /dev/null +++ b/linux/postgres/10/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:10" + build: + context: . diff --git a/linux/postgres/11/Makefile b/linux/postgres/11/Makefile index b3239da7d..82c5a2de6 100644 --- a/linux/postgres/11/Makefile +++ b/linux/postgres/11/Makefile @@ -1,4 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:11 . - docker push epicmorg/postgres:11 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/11/docker-compose.yml b/linux/postgres/11/docker-compose.yml new file mode 100644 index 000000000..2554735d4 --- /dev/null +++ b/linux/postgres/11/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:11" + build: + context: . diff --git a/linux/postgres/12/Makefile b/linux/postgres/12/Makefile index 8c7a5103e..82c5a2de6 100644 --- a/linux/postgres/12/Makefile +++ b/linux/postgres/12/Makefile @@ -1,4 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:12 . - docker push epicmorg/postgres:12 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/12/docker-compose.yml b/linux/postgres/12/docker-compose.yml new file mode 100644 index 000000000..227aafbb4 --- /dev/null +++ b/linux/postgres/12/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:12" + build: + context: . diff --git a/linux/postgres/8.2/Makefile b/linux/postgres/8.2/Makefile index 0d259a8fd..82c5a2de6 100644 --- a/linux/postgres/8.2/Makefile +++ b/linux/postgres/8.2/Makefile @@ -1,5 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:8.2 . - docker push epicmorg/postgres:8.2 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/8.2/docker-compose.yml b/linux/postgres/8.2/docker-compose.yml new file mode 100644 index 000000000..7603529da --- /dev/null +++ b/linux/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/postgres/8.3/Makefile b/linux/postgres/8.3/Makefile index 4ed0cf075..82c5a2de6 100644 --- a/linux/postgres/8.3/Makefile +++ b/linux/postgres/8.3/Makefile @@ -1,5 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:8.3 . - docker push epicmorg/postgres:8.3 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/8.3/docker-compose.yml b/linux/postgres/8.3/docker-compose.yml new file mode 100644 index 000000000..da6e814ca --- /dev/null +++ b/linux/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/postgres/8.4/Makefile b/linux/postgres/8.4/Makefile index f13d9c1aa..82c5a2de6 100644 --- a/linux/postgres/8.4/Makefile +++ b/linux/postgres/8.4/Makefile @@ -1,5 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:8.4 . - docker push epicmorg/postgres:8.4 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/8.4/docker-compose.yml b/linux/postgres/8.4/docker-compose.yml new file mode 100644 index 000000000..626259e74 --- /dev/null +++ b/linux/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/postgres/9.0/Makefile b/linux/postgres/9.0/Makefile index beb2ca99b..82c5a2de6 100644 --- a/linux/postgres/9.0/Makefile +++ b/linux/postgres/9.0/Makefile @@ -1,5 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.0 . - docker push epicmorg/postgres:9.0 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/9.0/docker-compose.yml b/linux/postgres/9.0/docker-compose.yml new file mode 100644 index 000000000..2784f7e85 --- /dev/null +++ b/linux/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/postgres/9.1/Makefile b/linux/postgres/9.1/Makefile index 5fa68bbe8..82c5a2de6 100644 --- a/linux/postgres/9.1/Makefile +++ b/linux/postgres/9.1/Makefile @@ -1,5 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.1 . - docker push epicmorg/postgres:9.1 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/9.1/docker-compose.yml b/linux/postgres/9.1/docker-compose.yml new file mode 100644 index 000000000..1bffc1c25 --- /dev/null +++ b/linux/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/postgres/9.2/Makefile b/linux/postgres/9.2/Makefile index 53533630e..82c5a2de6 100644 --- a/linux/postgres/9.2/Makefile +++ b/linux/postgres/9.2/Makefile @@ -1,5 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.2 . - docker push epicmorg/postgres:9.2 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/9.2/docker-compose.yml b/linux/postgres/9.2/docker-compose.yml new file mode 100644 index 000000000..4675aeab7 --- /dev/null +++ b/linux/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/postgres/9.3/Makefile b/linux/postgres/9.3/Makefile index 6d67f1c37..82c5a2de6 100644 --- a/linux/postgres/9.3/Makefile +++ b/linux/postgres/9.3/Makefile @@ -1,5 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.3 . - docker push epicmorg/postgres:9.3 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/9.3/docker-compose.yml b/linux/postgres/9.3/docker-compose.yml new file mode 100644 index 000000000..de767de0f --- /dev/null +++ b/linux/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/postgres/9.4/Makefile b/linux/postgres/9.4/Makefile index a825612b1..82c5a2de6 100644 --- a/linux/postgres/9.4/Makefile +++ b/linux/postgres/9.4/Makefile @@ -1,4 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.4 . - docker push epicmorg/postgres:9.4 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/9.4/docker-compose.yml b/linux/postgres/9.4/docker-compose.yml new file mode 100644 index 000000000..c995f335f --- /dev/null +++ b/linux/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/postgres/9.5/Makefile b/linux/postgres/9.5/Makefile index 93943e48d..82c5a2de6 100644 --- a/linux/postgres/9.5/Makefile +++ b/linux/postgres/9.5/Makefile @@ -1,4 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.5 . - docker push epicmorg/postgres:9.5 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/9.5/docker-compose.yml b/linux/postgres/9.5/docker-compose.yml new file mode 100644 index 000000000..9130c0618 --- /dev/null +++ b/linux/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/postgres/9.6/Makefile b/linux/postgres/9.6/Makefile index 5fc65e35e..82c5a2de6 100644 --- a/linux/postgres/9.6/Makefile +++ b/linux/postgres/9.6/Makefile @@ -1,4 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:9.6 . - docker push epicmorg/postgres:9.6 +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/9.6/docker-compose.yml b/linux/postgres/9.6/docker-compose.yml new file mode 100644 index 000000000..1dbe2cd46 --- /dev/null +++ b/linux/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/latest/Makefile b/linux/postgres/latest/Makefile index 55729c4e9..82c5a2de6 100644 --- a/linux/postgres/latest/Makefile +++ b/linux/postgres/latest/Makefile @@ -1,4 +1,5 @@ -all: pssql -pssql: - docker build --compress -t epicmorg/postgres:latest . - docker push epicmorg/postgres:latest +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/latest/docker-compose.yml b/linux/postgres/latest/docker-compose.yml new file mode 100644 index 000000000..97899ea6d --- /dev/null +++ b/linux/postgres/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:latest" + build: + context: . From 0506c6a164c2ed0370b4ba660e26560096025e4d Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 19:07:25 +0300 Subject: [PATCH 060/144] php ontainres reworked --- linux/php/{php7.2 => 7.2}/Dockerfile | 0 linux/php/7.2/Makefile | 5 +++++ linux/php/{php7.2 => 7.2}/README.md | 0 linux/php/7.2/docker-compose.yml | 6 ++++++ linux/php/{php7.3 => 7.3}/Dockerfile | 0 linux/php/7.3/Makefile | 5 +++++ linux/php/{php7.3 => 7.3}/README.md | 0 linux/php/7.3/docker-compose.yml | 6 ++++++ linux/php/{php7.4 => 7.4}/Dockerfile | 0 linux/php/7.4/Makefile | 5 +++++ linux/php/{php7.4 => 7.4}/README.md | 0 linux/php/7.4/docker-compose.yml | 6 ++++++ linux/php/latest/Makefile | 9 +++++---- linux/php/latest/docker-compose.yml | 6 ++++++ linux/php/php7.2/Makefile | 4 ---- linux/php/php7.3/Makefile | 4 ---- linux/php/php7.4/Makefile | 4 ---- 17 files changed, 44 insertions(+), 16 deletions(-) rename linux/php/{php7.2 => 7.2}/Dockerfile (100%) create mode 100644 linux/php/7.2/Makefile rename linux/php/{php7.2 => 7.2}/README.md (100%) create mode 100644 linux/php/7.2/docker-compose.yml rename linux/php/{php7.3 => 7.3}/Dockerfile (100%) create mode 100644 linux/php/7.3/Makefile rename linux/php/{php7.3 => 7.3}/README.md (100%) create mode 100644 linux/php/7.3/docker-compose.yml rename linux/php/{php7.4 => 7.4}/Dockerfile (100%) create mode 100644 linux/php/7.4/Makefile rename linux/php/{php7.4 => 7.4}/README.md (100%) create mode 100644 linux/php/7.4/docker-compose.yml create mode 100644 linux/php/latest/docker-compose.yml delete mode 100644 linux/php/php7.2/Makefile delete mode 100644 linux/php/php7.3/Makefile delete mode 100644 linux/php/php7.4/Makefile diff --git a/linux/php/php7.2/Dockerfile b/linux/php/7.2/Dockerfile similarity index 100% rename from linux/php/php7.2/Dockerfile rename to linux/php/7.2/Dockerfile diff --git a/linux/php/7.2/Makefile b/linux/php/7.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/php/7.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/php/php7.2/README.md b/linux/php/7.2/README.md similarity index 100% rename from linux/php/php7.2/README.md rename to linux/php/7.2/README.md diff --git a/linux/php/7.2/docker-compose.yml b/linux/php/7.2/docker-compose.yml new file mode 100644 index 000000000..f9c9af4e8 --- /dev/null +++ b/linux/php/7.2/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:7.2" + build: + context: . diff --git a/linux/php/php7.3/Dockerfile b/linux/php/7.3/Dockerfile similarity index 100% rename from linux/php/php7.3/Dockerfile rename to linux/php/7.3/Dockerfile diff --git a/linux/php/7.3/Makefile b/linux/php/7.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/php/7.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/php/php7.3/README.md b/linux/php/7.3/README.md similarity index 100% rename from linux/php/php7.3/README.md rename to linux/php/7.3/README.md diff --git a/linux/php/7.3/docker-compose.yml b/linux/php/7.3/docker-compose.yml new file mode 100644 index 000000000..ed5e1494b --- /dev/null +++ b/linux/php/7.3/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:7.3" + build: + context: . diff --git a/linux/php/php7.4/Dockerfile b/linux/php/7.4/Dockerfile similarity index 100% rename from linux/php/php7.4/Dockerfile rename to linux/php/7.4/Dockerfile diff --git a/linux/php/7.4/Makefile b/linux/php/7.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/php/7.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/php/php7.4/README.md b/linux/php/7.4/README.md similarity index 100% rename from linux/php/php7.4/README.md rename to linux/php/7.4/README.md diff --git a/linux/php/7.4/docker-compose.yml b/linux/php/7.4/docker-compose.yml new file mode 100644 index 000000000..9613efc9d --- /dev/null +++ b/linux/php/7.4/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:7.4" + build: + context: . diff --git a/linux/php/latest/Makefile b/linux/php/latest/Makefile index 60bfd9c5c..82c5a2de6 100644 --- a/linux/php/latest/Makefile +++ b/linux/php/latest/Makefile @@ -1,4 +1,5 @@ -all: php -php: - docker build --compress -t epicmorg/php:latest . - docker push epicmorg/php:latest +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/php/latest/docker-compose.yml b/linux/php/latest/docker-compose.yml new file mode 100644 index 000000000..2efbde924 --- /dev/null +++ b/linux/php/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/php:latest" + build: + context: . 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/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/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 From 52e6be211dbd0ace12afb6d199cf8b8ceb47be72 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 2 Jun 2021 19:12:34 +0300 Subject: [PATCH 061/144] php tag fix --- linux/php/7.2/docker-compose.yml | 2 +- linux/php/7.3/docker-compose.yml | 2 +- linux/php/7.4/docker-compose.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/linux/php/7.2/docker-compose.yml b/linux/php/7.2/docker-compose.yml index f9c9af4e8..1105fecbf 100644 --- a/linux/php/7.2/docker-compose.yml +++ b/linux/php/7.2/docker-compose.yml @@ -1,6 +1,6 @@ version: '3.9' services: app: - image: "epicmorg/php:7.2" + image: "epicmorg/php:php7.2" build: context: . diff --git a/linux/php/7.3/docker-compose.yml b/linux/php/7.3/docker-compose.yml index ed5e1494b..0d4ba6698 100644 --- a/linux/php/7.3/docker-compose.yml +++ b/linux/php/7.3/docker-compose.yml @@ -1,6 +1,6 @@ version: '3.9' services: app: - image: "epicmorg/php:7.3" + image: "epicmorg/php:php7.3" build: context: . diff --git a/linux/php/7.4/docker-compose.yml b/linux/php/7.4/docker-compose.yml index 9613efc9d..76e1ebf01 100644 --- a/linux/php/7.4/docker-compose.yml +++ b/linux/php/7.4/docker-compose.yml @@ -1,6 +1,6 @@ version: '3.9' services: app: - image: "epicmorg/php:7.4" + image: "epicmorg/php:php7.4" build: context: . From 2df9402cabfea9c2f5da1a11cdba4faa75c8c7fd Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 3 Jun 2021 00:13:55 +0300 Subject: [PATCH 062/144] nextcloud migrated to new format --- linux/nextcloud/14/Makefile | 8 ++++---- linux/nextcloud/14/docker-compose.yml | 6 ++++++ linux/nextcloud/15/Makefile | 8 ++++---- linux/nextcloud/15/docker-compose.yml | 6 ++++++ linux/nextcloud/16/Makefile | 8 ++++---- linux/nextcloud/16/docker-compose.yml | 6 ++++++ linux/nextcloud/17/Makefile | 8 ++++---- linux/nextcloud/17/docker-compose.yml | 6 ++++++ linux/nextcloud/18/Makefile | 9 +++++---- linux/nextcloud/18/docker-compose.yml | 6 ++++++ linux/nextcloud/19/Makefile | 9 +++++---- linux/nextcloud/19/docker-compose.yml | 6 ++++++ linux/nextcloud/20/Makefile | 9 +++++---- linux/nextcloud/20/docker-compose.yml | 6 ++++++ linux/nextcloud/21/Makefile | 9 +++++---- linux/nextcloud/21/docker-compose.yml | 6 ++++++ linux/nextcloud/latest/Makefile | 9 +++++---- linux/nextcloud/latest/docker-compose.yml | 6 ++++++ 18 files changed, 95 insertions(+), 36 deletions(-) create mode 100644 linux/nextcloud/14/docker-compose.yml create mode 100644 linux/nextcloud/15/docker-compose.yml create mode 100644 linux/nextcloud/16/docker-compose.yml create mode 100644 linux/nextcloud/17/docker-compose.yml create mode 100644 linux/nextcloud/18/docker-compose.yml create mode 100644 linux/nextcloud/19/docker-compose.yml create mode 100644 linux/nextcloud/20/docker-compose.yml create mode 100644 linux/nextcloud/21/docker-compose.yml create mode 100644 linux/nextcloud/latest/docker-compose.yml diff --git a/linux/nextcloud/14/Makefile b/linux/nextcloud/14/Makefile index 648223576..82c5a2de6 100644 --- a/linux/nextcloud/14/Makefile +++ b/linux/nextcloud/14/Makefile @@ -1,5 +1,5 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:14 . - docker push epicmorg/nextcloud:14 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nextcloud/14/docker-compose.yml b/linux/nextcloud/14/docker-compose.yml new file mode 100644 index 000000000..f5201d94a --- /dev/null +++ b/linux/nextcloud/14/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:14" + build: + context: . diff --git a/linux/nextcloud/15/Makefile b/linux/nextcloud/15/Makefile index 75c2ae4ab..82c5a2de6 100644 --- a/linux/nextcloud/15/Makefile +++ b/linux/nextcloud/15/Makefile @@ -1,5 +1,5 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:15 . - docker push epicmorg/nextcloud:15 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nextcloud/15/docker-compose.yml b/linux/nextcloud/15/docker-compose.yml new file mode 100644 index 000000000..d3e497a0f --- /dev/null +++ b/linux/nextcloud/15/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:15" + build: + context: . diff --git a/linux/nextcloud/16/Makefile b/linux/nextcloud/16/Makefile index 43616fc33..82c5a2de6 100644 --- a/linux/nextcloud/16/Makefile +++ b/linux/nextcloud/16/Makefile @@ -1,5 +1,5 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:16 . - docker push epicmorg/nextcloud:16 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nextcloud/16/docker-compose.yml b/linux/nextcloud/16/docker-compose.yml new file mode 100644 index 000000000..b62a895ea --- /dev/null +++ b/linux/nextcloud/16/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:16" + build: + context: . diff --git a/linux/nextcloud/17/Makefile b/linux/nextcloud/17/Makefile index 40f598ad5..82c5a2de6 100644 --- a/linux/nextcloud/17/Makefile +++ b/linux/nextcloud/17/Makefile @@ -1,5 +1,5 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:17 . - docker push epicmorg/nextcloud:17 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nextcloud/17/docker-compose.yml b/linux/nextcloud/17/docker-compose.yml new file mode 100644 index 000000000..61c86987f --- /dev/null +++ b/linux/nextcloud/17/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:17" + build: + context: . diff --git a/linux/nextcloud/18/Makefile b/linux/nextcloud/18/Makefile index 81d7153d8..82c5a2de6 100644 --- a/linux/nextcloud/18/Makefile +++ b/linux/nextcloud/18/Makefile @@ -1,4 +1,5 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:18 . - docker push epicmorg/nextcloud:18 \ No newline at end of file +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nextcloud/18/docker-compose.yml b/linux/nextcloud/18/docker-compose.yml new file mode 100644 index 000000000..1c1b6a5ce --- /dev/null +++ b/linux/nextcloud/18/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:18" + build: + context: . diff --git a/linux/nextcloud/19/Makefile b/linux/nextcloud/19/Makefile index 9822b1cf2..82c5a2de6 100644 --- a/linux/nextcloud/19/Makefile +++ b/linux/nextcloud/19/Makefile @@ -1,4 +1,5 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:19 . - docker push epicmorg/nextcloud:19 \ No newline at end of file +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nextcloud/19/docker-compose.yml b/linux/nextcloud/19/docker-compose.yml new file mode 100644 index 000000000..53429226d --- /dev/null +++ b/linux/nextcloud/19/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:19" + build: + context: . diff --git a/linux/nextcloud/20/Makefile b/linux/nextcloud/20/Makefile index f68f3520d..82c5a2de6 100644 --- a/linux/nextcloud/20/Makefile +++ b/linux/nextcloud/20/Makefile @@ -1,4 +1,5 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:20 . - docker push epicmorg/nextcloud:20 \ No newline at end of file +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nextcloud/20/docker-compose.yml b/linux/nextcloud/20/docker-compose.yml new file mode 100644 index 000000000..24f640b6a --- /dev/null +++ b/linux/nextcloud/20/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:20" + build: + context: . diff --git a/linux/nextcloud/21/Makefile b/linux/nextcloud/21/Makefile index 0265b925e..82c5a2de6 100644 --- a/linux/nextcloud/21/Makefile +++ b/linux/nextcloud/21/Makefile @@ -1,4 +1,5 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:21 . - docker push epicmorg/nextcloud:21 \ No newline at end of file +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nextcloud/21/docker-compose.yml b/linux/nextcloud/21/docker-compose.yml new file mode 100644 index 000000000..f6bd84428 --- /dev/null +++ b/linux/nextcloud/21/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:21" + build: + context: . diff --git a/linux/nextcloud/latest/Makefile b/linux/nextcloud/latest/Makefile index 6cee66f73..82c5a2de6 100644 --- a/linux/nextcloud/latest/Makefile +++ b/linux/nextcloud/latest/Makefile @@ -1,4 +1,5 @@ -all: nc -nc: - docker build --compress -t epicmorg/nextcloud:latest . - docker push epicmorg/nextcloud:latest \ No newline at end of file +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nextcloud/latest/docker-compose.yml b/linux/nextcloud/latest/docker-compose.yml new file mode 100644 index 000000000..ec811fc63 --- /dev/null +++ b/linux/nextcloud/latest/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:latest" + build: + context: . From a4d127fc55c636e32ecd4d7be5a27f39a70a6e76 Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 3 Jun 2021 00:25:48 +0300 Subject: [PATCH 063/144] epicmorg prod migrated to new config --- linux/epicmorg/prod/jdk11/Makefile | 8 ++++---- linux/epicmorg/prod/jdk11/docker-compose.yml | 6 ++++++ linux/epicmorg/prod/jdk6/Makefile | 8 ++++---- linux/epicmorg/prod/jdk6/docker-compose.yml | 6 ++++++ linux/epicmorg/prod/jdk7/Makefile | 8 ++++---- linux/epicmorg/prod/jdk7/docker-compose.yml | 6 ++++++ linux/epicmorg/prod/jdk8/Makefile | 8 ++++---- linux/epicmorg/prod/jdk8/docker-compose.yml | 6 ++++++ linux/epicmorg/prod/main/Makefile | 8 ++++---- linux/epicmorg/prod/main/docker-compose.yml | 6 ++++++ 10 files changed, 50 insertions(+), 20 deletions(-) create mode 100644 linux/epicmorg/prod/jdk11/docker-compose.yml create mode 100644 linux/epicmorg/prod/jdk6/docker-compose.yml create mode 100644 linux/epicmorg/prod/jdk7/docker-compose.yml create mode 100644 linux/epicmorg/prod/jdk8/docker-compose.yml create mode 100644 linux/epicmorg/prod/main/docker-compose.yml diff --git a/linux/epicmorg/prod/jdk11/Makefile b/linux/epicmorg/prod/jdk11/Makefile index 0e1191be5..82c5a2de6 100644 --- a/linux/epicmorg/prod/jdk11/Makefile +++ b/linux/epicmorg/prod/jdk11/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:jdk11 . - docker push epicmorg/prod:jdk11 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/prod/jdk11/docker-compose.yml b/linux/epicmorg/prod/jdk11/docker-compose.yml new file mode 100644 index 000000000..f2f42c39a --- /dev/null +++ b/linux/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/epicmorg/prod/jdk6/Makefile b/linux/epicmorg/prod/jdk6/Makefile index fa42f0e27..82c5a2de6 100644 --- a/linux/epicmorg/prod/jdk6/Makefile +++ b/linux/epicmorg/prod/jdk6/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:jdk6 . - docker push epicmorg/prod:jdk6 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/prod/jdk6/docker-compose.yml b/linux/epicmorg/prod/jdk6/docker-compose.yml new file mode 100644 index 000000000..d3b32eefa --- /dev/null +++ b/linux/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/Makefile b/linux/epicmorg/prod/jdk7/Makefile index 5288c1ad5..82c5a2de6 100644 --- a/linux/epicmorg/prod/jdk7/Makefile +++ b/linux/epicmorg/prod/jdk7/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:jdk7 . - docker push epicmorg/prod:jdk7 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/prod/jdk7/docker-compose.yml b/linux/epicmorg/prod/jdk7/docker-compose.yml new file mode 100644 index 000000000..552f80bde --- /dev/null +++ b/linux/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/Makefile b/linux/epicmorg/prod/jdk8/Makefile index 7ee8c155f..82c5a2de6 100644 --- a/linux/epicmorg/prod/jdk8/Makefile +++ b/linux/epicmorg/prod/jdk8/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:jdk8 . - docker push epicmorg/prod:jdk8 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/prod/jdk8/docker-compose.yml b/linux/epicmorg/prod/jdk8/docker-compose.yml new file mode 100644 index 000000000..e1a271d98 --- /dev/null +++ b/linux/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/epicmorg/prod/main/Makefile b/linux/epicmorg/prod/main/Makefile index 9c6cb3e47..82c5a2de6 100644 --- a/linux/epicmorg/prod/main/Makefile +++ b/linux/epicmorg/prod/main/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod . - docker push epicmorg/prod +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/prod/main/docker-compose.yml b/linux/epicmorg/prod/main/docker-compose.yml new file mode 100644 index 000000000..0eb49ecd4 --- /dev/null +++ b/linux/epicmorg/prod/main/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/prod:latest" + build: + context: . From 09c4b955635800cdd16e23cec612bef61dbe52cd Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 3 Jun 2021 00:29:57 +0300 Subject: [PATCH 064/144] epicmorg edge migrated to new config --- linux/epicmorg/edge/jdk11/Makefile | 8 ++++---- linux/epicmorg/edge/jdk11/docker-compose.yml | 6 ++++++ linux/epicmorg/edge/jdk6/Makefile | 8 ++++---- linux/epicmorg/edge/jdk6/docker-compose.yml | 6 ++++++ linux/epicmorg/edge/jdk7/Makefile | 8 ++++---- linux/epicmorg/edge/jdk7/docker-compose.yml | 6 ++++++ linux/epicmorg/edge/jdk8/Makefile | 8 ++++---- linux/epicmorg/edge/jdk8/docker-compose.yml | 6 ++++++ linux/epicmorg/edge/main/Makefile | 8 ++++---- linux/epicmorg/edge/main/docker-compose.yml | 6 ++++++ 10 files changed, 50 insertions(+), 20 deletions(-) create mode 100644 linux/epicmorg/edge/jdk11/docker-compose.yml create mode 100644 linux/epicmorg/edge/jdk6/docker-compose.yml create mode 100644 linux/epicmorg/edge/jdk7/docker-compose.yml create mode 100644 linux/epicmorg/edge/jdk8/docker-compose.yml create mode 100644 linux/epicmorg/edge/main/docker-compose.yml diff --git a/linux/epicmorg/edge/jdk11/Makefile b/linux/epicmorg/edge/jdk11/Makefile index 1bcad05b2..82c5a2de6 100644 --- a/linux/epicmorg/edge/jdk11/Makefile +++ b/linux/epicmorg/edge/jdk11/Makefile @@ -1,5 +1,5 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/edge:jdk11 . - docker push epicmorg/edge:jdk11 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/edge/jdk11/docker-compose.yml b/linux/epicmorg/edge/jdk11/docker-compose.yml new file mode 100644 index 000000000..8e3c49f5c --- /dev/null +++ b/linux/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/epicmorg/edge/jdk6/Makefile b/linux/epicmorg/edge/jdk6/Makefile index d02c51767..82c5a2de6 100644 --- a/linux/epicmorg/edge/jdk6/Makefile +++ b/linux/epicmorg/edge/jdk6/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/edge:jdk6 . - docker push epicmorg/edge:jdk6 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/edge/jdk6/docker-compose.yml b/linux/epicmorg/edge/jdk6/docker-compose.yml new file mode 100644 index 000000000..be02b2e6c --- /dev/null +++ b/linux/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/Makefile b/linux/epicmorg/edge/jdk7/Makefile index ca513d304..82c5a2de6 100644 --- a/linux/epicmorg/edge/jdk7/Makefile +++ b/linux/epicmorg/edge/jdk7/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/edge:jdk7 . - docker push epicmorg/edge:jdk7 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/edge/jdk7/docker-compose.yml b/linux/epicmorg/edge/jdk7/docker-compose.yml new file mode 100644 index 000000000..f28c0e686 --- /dev/null +++ b/linux/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/Makefile b/linux/epicmorg/edge/jdk8/Makefile index 6a17f6dc8..82c5a2de6 100644 --- a/linux/epicmorg/edge/jdk8/Makefile +++ b/linux/epicmorg/edge/jdk8/Makefile @@ -1,5 +1,5 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/edge:jdk8 . - docker push epicmorg/edge:jdk8 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/edge/jdk8/docker-compose.yml b/linux/epicmorg/edge/jdk8/docker-compose.yml new file mode 100644 index 000000000..62509c1d6 --- /dev/null +++ b/linux/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/epicmorg/edge/main/Makefile b/linux/epicmorg/edge/main/Makefile index c44f1d984..82c5a2de6 100644 --- a/linux/epicmorg/edge/main/Makefile +++ b/linux/epicmorg/edge/main/Makefile @@ -1,5 +1,5 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/edge . - docker push epicmorg/edge +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/edge/main/docker-compose.yml b/linux/epicmorg/edge/main/docker-compose.yml new file mode 100644 index 000000000..68eb65396 --- /dev/null +++ b/linux/epicmorg/edge/main/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/edge:latest" + build: + context: . From fd924c1cfeb6471d3b7524c6275916bef25057aa Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 3 Jun 2021 00:32:31 +0300 Subject: [PATCH 065/144] epicmorg deve; migrated to new config --- linux/epicmorg/devel/jdk11/Makefile | 8 ++++---- linux/epicmorg/devel/jdk11/docker-compose.yml | 6 ++++++ linux/epicmorg/devel/jdk6/Makefile | 8 ++++---- linux/epicmorg/devel/jdk6/docker-compose.yml | 6 ++++++ linux/epicmorg/devel/jdk7/Makefile | 8 ++++---- linux/epicmorg/devel/jdk7/docker-compose.yml | 6 ++++++ linux/epicmorg/devel/jdk8/Makefile | 8 ++++---- linux/epicmorg/devel/jdk8/docker-compose.yml | 6 ++++++ linux/epicmorg/devel/main/Makefile | 8 ++++---- linux/epicmorg/devel/main/docker-compose.yml | 6 ++++++ 10 files changed, 50 insertions(+), 20 deletions(-) create mode 100644 linux/epicmorg/devel/jdk11/docker-compose.yml create mode 100644 linux/epicmorg/devel/jdk6/docker-compose.yml create mode 100644 linux/epicmorg/devel/jdk7/docker-compose.yml create mode 100644 linux/epicmorg/devel/jdk8/docker-compose.yml create mode 100644 linux/epicmorg/devel/main/docker-compose.yml diff --git a/linux/epicmorg/devel/jdk11/Makefile b/linux/epicmorg/devel/jdk11/Makefile index 62e0280e0..82c5a2de6 100644 --- a/linux/epicmorg/devel/jdk11/Makefile +++ b/linux/epicmorg/devel/jdk11/Makefile @@ -1,5 +1,5 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/devel:jdk11 . - docker push epicmorg/devel:jdk11 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/devel/jdk11/docker-compose.yml b/linux/epicmorg/devel/jdk11/docker-compose.yml new file mode 100644 index 000000000..c18b88c24 --- /dev/null +++ b/linux/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/epicmorg/devel/jdk6/Makefile b/linux/epicmorg/devel/jdk6/Makefile index 6c683ad45..82c5a2de6 100644 --- a/linux/epicmorg/devel/jdk6/Makefile +++ b/linux/epicmorg/devel/jdk6/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/devel:jdk6 . - docker push epicmorg/devel:jdk6 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/devel/jdk6/docker-compose.yml b/linux/epicmorg/devel/jdk6/docker-compose.yml new file mode 100644 index 000000000..fc8255dba --- /dev/null +++ b/linux/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/Makefile b/linux/epicmorg/devel/jdk7/Makefile index 227771561..82c5a2de6 100644 --- a/linux/epicmorg/devel/jdk7/Makefile +++ b/linux/epicmorg/devel/jdk7/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/devel:jdk7 . - docker push epicmorg/devel:jdk7 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/devel/jdk7/docker-compose.yml b/linux/epicmorg/devel/jdk7/docker-compose.yml new file mode 100644 index 000000000..05c7ad05f --- /dev/null +++ b/linux/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/Makefile b/linux/epicmorg/devel/jdk8/Makefile index 17f27ca0e..82c5a2de6 100644 --- a/linux/epicmorg/devel/jdk8/Makefile +++ b/linux/epicmorg/devel/jdk8/Makefile @@ -1,5 +1,5 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/devel:jdk8 . - docker push epicmorg/devel:jdk8 +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/devel/jdk8/docker-compose.yml b/linux/epicmorg/devel/jdk8/docker-compose.yml new file mode 100644 index 000000000..82658b37b --- /dev/null +++ b/linux/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/epicmorg/devel/main/Makefile b/linux/epicmorg/devel/main/Makefile index e40fa6bff..82c5a2de6 100644 --- a/linux/epicmorg/devel/main/Makefile +++ b/linux/epicmorg/devel/main/Makefile @@ -1,5 +1,5 @@ -all: emgdev -emgdev: - docker build --compress -t epicmorg/devel . - docker push epicmorg/devel +all: app +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/devel/main/docker-compose.yml b/linux/epicmorg/devel/main/docker-compose.yml new file mode 100644 index 000000000..d580e7a5d --- /dev/null +++ b/linux/epicmorg/devel/main/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/devel:latest" + build: + context: . From 9c3b10c0d51fd3b05d356e348303b6af3075ff2c Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 3 Jun 2021 00:38:50 +0300 Subject: [PATCH 066/144] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96b353d51..ef3ed1eac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## Changelog ### 2021 +* `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. From 8f2a0fe1c9e19490191b96ab0e5ba84347fd670b Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 3 Jun 2021 00:41:00 +0300 Subject: [PATCH 067/144] win migrated to new format --- win32/epicmorg/prod/win-server-core/Makefile | 8 ++++---- win32/epicmorg/prod/win-server-core/docker-compose.yml | 6 ++++++ win32/epicmorg/prod/win10/Makefile | 8 ++++---- win32/epicmorg/prod/win10/docker-compose.yml | 6 ++++++ 4 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 win32/epicmorg/prod/win-server-core/docker-compose.yml create mode 100644 win32/epicmorg/prod/win10/docker-compose.yml diff --git a/win32/epicmorg/prod/win-server-core/Makefile b/win32/epicmorg/prod/win-server-core/Makefile index 3e46b7059..82c5a2de6 100644 --- a/win32/epicmorg/prod/win-server-core/Makefile +++ b/win32/epicmorg/prod/win-server-core/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:win-server-core . - docker push epicmorg/prod:win-server-core +all: app +app: + docker-compose build --compress + docker-compose push 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..82c5a2de6 100644 --- a/win32/epicmorg/prod/win10/Makefile +++ b/win32/epicmorg/prod/win10/Makefile @@ -1,5 +1,5 @@ -all: emgprod -emgprod: - docker build --compress -t epicmorg/prod:win10 . - docker push epicmorg/prod:win10 +all: app +app: + docker-compose build --compress + docker-compose push 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: . From f20aea86a78d4cb05f3a453f46bece5691ea33d1 Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 3 Jun 2021 00:48:27 +0300 Subject: [PATCH 068/144] nginx new images --- linux/nginx/1.10.3/main/.env | 2 + linux/nginx/1.10.3/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.10.3/main/Makefile | 5 + linux/nginx/1.10.3/main/README.md | 30 ++ linux/nginx/1.10.3/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.10.3/main/pre/luajit2-description-pak | 1 + .../1.10.3/main/pre/nginx-description-pak | 1 + linux/nginx/1.10.3/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.10.3/php/.env | 2 + linux/nginx/1.10.3/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.10.3/php/Makefile | 5 + linux/nginx/1.10.3/php/README.md | 30 ++ linux/nginx/1.10.3/php/docker-compose.yml | 9 + linux/nginx/1.10.3/rtmp-hls/.env | 2 + linux/nginx/1.10.3/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.10.3/rtmp-hls/Makefile | 5 + linux/nginx/1.10.3/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.10.3/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../1.10.3/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.10.3/rtmp-hls/docker-compose.yml | 9 + linux/nginx/1.10.3/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.10.3/rtmp-hls/players/hls.html | 23 ++ .../1.10.3/rtmp-hls/players/hls_hlsjs.html | 41 +++ linux/nginx/1.10.3/rtmp-hls/players/rtmp.html | 24 ++ .../1.10.3/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ linux/nginx/1.11.13/main/.env | 2 + linux/nginx/1.11.13/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.11.13/main/Makefile | 5 + linux/nginx/1.11.13/main/README.md | 30 ++ linux/nginx/1.11.13/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.11.13/main/pre/luajit2-description-pak | 1 + .../1.11.13/main/pre/nginx-description-pak | 1 + .../nginx/1.11.13/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.11.13/php/.env | 2 + linux/nginx/1.11.13/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.11.13/php/Makefile | 5 + linux/nginx/1.11.13/php/README.md | 30 ++ linux/nginx/1.11.13/php/docker-compose.yml | 9 + linux/nginx/1.11.13/rtmp-hls/.env | 2 + linux/nginx/1.11.13/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.11.13/rtmp-hls/Makefile | 5 + linux/nginx/1.11.13/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.11.13/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.11.13/rtmp-hls/docker-compose.yml | 9 + .../nginx/1.11.13/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.11.13/rtmp-hls/players/hls.html | 23 ++ .../1.11.13/rtmp-hls/players/hls_hlsjs.html | 41 +++ .../nginx/1.11.13/rtmp-hls/players/rtmp.html | 24 ++ .../1.11.13/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ linux/nginx/1.12.2/main/.env | 2 + linux/nginx/1.12.2/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.12.2/main/Makefile | 5 + linux/nginx/1.12.2/main/README.md | 30 ++ linux/nginx/1.12.2/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.12.2/main/pre/luajit2-description-pak | 1 + .../1.12.2/main/pre/nginx-description-pak | 1 + linux/nginx/1.12.2/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.12.2/php/.env | 2 + linux/nginx/1.12.2/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.12.2/php/Makefile | 5 + linux/nginx/1.12.2/php/README.md | 30 ++ linux/nginx/1.12.2/php/docker-compose.yml | 9 + linux/nginx/1.12.2/rtmp-hls/.env | 2 + linux/nginx/1.12.2/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.12.2/rtmp-hls/Makefile | 5 + linux/nginx/1.12.2/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.12.2/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../1.12.2/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.12.2/rtmp-hls/docker-compose.yml | 9 + linux/nginx/1.12.2/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.12.2/rtmp-hls/players/hls.html | 23 ++ .../1.12.2/rtmp-hls/players/hls_hlsjs.html | 41 +++ linux/nginx/1.12.2/rtmp-hls/players/rtmp.html | 24 ++ .../1.12.2/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ linux/nginx/1.13.12/main/.env | 2 + linux/nginx/1.13.12/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.13.12/main/Makefile | 5 + linux/nginx/1.13.12/main/README.md | 30 ++ linux/nginx/1.13.12/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.13.12/main/pre/luajit2-description-pak | 1 + .../1.13.12/main/pre/nginx-description-pak | 1 + .../nginx/1.13.12/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.13.12/php/.env | 2 + linux/nginx/1.13.12/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.13.12/php/Makefile | 5 + linux/nginx/1.13.12/php/README.md | 30 ++ linux/nginx/1.13.12/php/docker-compose.yml | 9 + linux/nginx/1.13.12/rtmp-hls/.env | 2 + linux/nginx/1.13.12/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.13.12/rtmp-hls/Makefile | 5 + linux/nginx/1.13.12/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.13.12/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.13.12/rtmp-hls/docker-compose.yml | 9 + .../nginx/1.13.12/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.13.12/rtmp-hls/players/hls.html | 23 ++ .../1.13.12/rtmp-hls/players/hls_hlsjs.html | 41 +++ .../nginx/1.13.12/rtmp-hls/players/rtmp.html | 24 ++ .../1.13.12/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ linux/nginx/1.9.15/main/.env | 2 + linux/nginx/1.9.15/main/Dockerfile | 235 ++++++++++++++++ linux/nginx/1.9.15/main/Makefile | 5 + linux/nginx/1.9.15/main/README.md | 30 ++ linux/nginx/1.9.15/main/docker-compose.yml | 9 + .../main/pre/ip2location-description-pak | 1 + .../1.9.15/main/pre/luajit2-description-pak | 1 + .../1.9.15/main/pre/nginx-description-pak | 1 + linux/nginx/1.9.15/main/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes linux/nginx/1.9.15/php/.env | 2 + linux/nginx/1.9.15/php/Dockerfile | 257 ++++++++++++++++++ linux/nginx/1.9.15/php/Makefile | 5 + linux/nginx/1.9.15/php/README.md | 30 ++ linux/nginx/1.9.15/php/docker-compose.yml | 9 + linux/nginx/1.9.15/rtmp-hls/.env | 2 + linux/nginx/1.9.15/rtmp-hls/Dockerfile | 127 +++++++++ linux/nginx/1.9.15/rtmp-hls/Makefile | 5 + linux/nginx/1.9.15/rtmp-hls/README.md | 78 ++++++ linux/nginx/1.9.15/rtmp-hls/conf/nginx.conf | 134 +++++++++ .../1.9.15/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 ++++++++ .../conf/nginx_rtmp_minimal_no-stats.conf | 16 ++ .../nginx/1.9.15/rtmp-hls/docker-compose.yml | 9 + linux/nginx/1.9.15/rtmp-hls/players/dash.html | 23 ++ linux/nginx/1.9.15/rtmp-hls/players/hls.html | 23 ++ .../1.9.15/rtmp-hls/players/hls_hlsjs.html | 41 +++ linux/nginx/1.9.15/rtmp-hls/players/rtmp.html | 24 ++ .../1.9.15/rtmp-hls/players/rtmp_hls.html | 30 ++ .../sources.list.d/sources.buster.list | 19 ++ .../rtmp-hls/sources.list.d/sources.sid.list | 19 ++ .../sources.list.d/sources.stretch.list | 19 ++ 150 files changed, 6370 insertions(+) create mode 100644 linux/nginx/1.10.3/main/.env create mode 100644 linux/nginx/1.10.3/main/Dockerfile create mode 100644 linux/nginx/1.10.3/main/Makefile create mode 100644 linux/nginx/1.10.3/main/README.md create mode 100644 linux/nginx/1.10.3/main/docker-compose.yml create mode 100644 linux/nginx/1.10.3/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.10.3/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.10.3/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.10.3/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.10.3/php/.env create mode 100644 linux/nginx/1.10.3/php/Dockerfile create mode 100644 linux/nginx/1.10.3/php/Makefile create mode 100644 linux/nginx/1.10.3/php/README.md create mode 100644 linux/nginx/1.10.3/php/docker-compose.yml create mode 100644 linux/nginx/1.10.3/rtmp-hls/.env create mode 100644 linux/nginx/1.10.3/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.10.3/rtmp-hls/Makefile create mode 100644 linux/nginx/1.10.3/rtmp-hls/README.md create mode 100644 linux/nginx/1.10.3/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.10.3/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.10.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.10.3/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.10.3/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.10.3/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.10.3/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.10.3/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.10.3/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.stretch.list create mode 100644 linux/nginx/1.11.13/main/.env create mode 100644 linux/nginx/1.11.13/main/Dockerfile create mode 100644 linux/nginx/1.11.13/main/Makefile create mode 100644 linux/nginx/1.11.13/main/README.md create mode 100644 linux/nginx/1.11.13/main/docker-compose.yml create mode 100644 linux/nginx/1.11.13/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.11.13/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.11.13/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.11.13/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.11.13/php/.env create mode 100644 linux/nginx/1.11.13/php/Dockerfile create mode 100644 linux/nginx/1.11.13/php/Makefile create mode 100644 linux/nginx/1.11.13/php/README.md create mode 100644 linux/nginx/1.11.13/php/docker-compose.yml create mode 100644 linux/nginx/1.11.13/rtmp-hls/.env create mode 100644 linux/nginx/1.11.13/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.11.13/rtmp-hls/Makefile create mode 100644 linux/nginx/1.11.13/rtmp-hls/README.md create mode 100644 linux/nginx/1.11.13/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.11.13/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.11.13/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.11.13/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.11.13/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.11.13/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.11.13/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.11.13/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.11.13/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.stretch.list create mode 100644 linux/nginx/1.12.2/main/.env create mode 100644 linux/nginx/1.12.2/main/Dockerfile create mode 100644 linux/nginx/1.12.2/main/Makefile create mode 100644 linux/nginx/1.12.2/main/README.md create mode 100644 linux/nginx/1.12.2/main/docker-compose.yml create mode 100644 linux/nginx/1.12.2/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.12.2/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.12.2/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.12.2/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.12.2/php/.env create mode 100644 linux/nginx/1.12.2/php/Dockerfile create mode 100644 linux/nginx/1.12.2/php/Makefile create mode 100644 linux/nginx/1.12.2/php/README.md create mode 100644 linux/nginx/1.12.2/php/docker-compose.yml create mode 100644 linux/nginx/1.12.2/rtmp-hls/.env create mode 100644 linux/nginx/1.12.2/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.12.2/rtmp-hls/Makefile create mode 100644 linux/nginx/1.12.2/rtmp-hls/README.md create mode 100644 linux/nginx/1.12.2/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.12.2/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.12.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.12.2/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.12.2/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.12.2/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.12.2/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.12.2/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.12.2/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.stretch.list create mode 100644 linux/nginx/1.13.12/main/.env create mode 100644 linux/nginx/1.13.12/main/Dockerfile create mode 100644 linux/nginx/1.13.12/main/Makefile create mode 100644 linux/nginx/1.13.12/main/README.md create mode 100644 linux/nginx/1.13.12/main/docker-compose.yml create mode 100644 linux/nginx/1.13.12/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.13.12/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.13.12/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.13.12/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.13.12/php/.env create mode 100644 linux/nginx/1.13.12/php/Dockerfile create mode 100644 linux/nginx/1.13.12/php/Makefile create mode 100644 linux/nginx/1.13.12/php/README.md create mode 100644 linux/nginx/1.13.12/php/docker-compose.yml create mode 100644 linux/nginx/1.13.12/rtmp-hls/.env create mode 100644 linux/nginx/1.13.12/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.13.12/rtmp-hls/Makefile create mode 100644 linux/nginx/1.13.12/rtmp-hls/README.md create mode 100644 linux/nginx/1.13.12/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.13.12/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.13.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.13.12/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.13.12/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.13.12/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.13.12/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.13.12/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.13.12/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.stretch.list create mode 100644 linux/nginx/1.9.15/main/.env create mode 100644 linux/nginx/1.9.15/main/Dockerfile create mode 100644 linux/nginx/1.9.15/main/Makefile create mode 100644 linux/nginx/1.9.15/main/README.md create mode 100644 linux/nginx/1.9.15/main/docker-compose.yml create mode 100644 linux/nginx/1.9.15/main/pre/ip2location-description-pak create mode 100644 linux/nginx/1.9.15/main/pre/luajit2-description-pak create mode 100644 linux/nginx/1.9.15/main/pre/nginx-description-pak create mode 100644 linux/nginx/1.9.15/main/pre/ngninx.pre.tar.gz create mode 100644 linux/nginx/1.9.15/php/.env create mode 100644 linux/nginx/1.9.15/php/Dockerfile create mode 100644 linux/nginx/1.9.15/php/Makefile create mode 100644 linux/nginx/1.9.15/php/README.md create mode 100644 linux/nginx/1.9.15/php/docker-compose.yml create mode 100644 linux/nginx/1.9.15/rtmp-hls/.env create mode 100644 linux/nginx/1.9.15/rtmp-hls/Dockerfile create mode 100644 linux/nginx/1.9.15/rtmp-hls/Makefile create mode 100644 linux/nginx/1.9.15/rtmp-hls/README.md create mode 100644 linux/nginx/1.9.15/rtmp-hls/conf/nginx.conf create mode 100644 linux/nginx/1.9.15/rtmp-hls/conf/nginx_no-ffmpeg.conf create mode 100644 linux/nginx/1.9.15/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf create mode 100644 linux/nginx/1.9.15/rtmp-hls/docker-compose.yml create mode 100644 linux/nginx/1.9.15/rtmp-hls/players/dash.html create mode 100644 linux/nginx/1.9.15/rtmp-hls/players/hls.html create mode 100644 linux/nginx/1.9.15/rtmp-hls/players/hls_hlsjs.html create mode 100644 linux/nginx/1.9.15/rtmp-hls/players/rtmp.html create mode 100644 linux/nginx/1.9.15/rtmp-hls/players/rtmp_hls.html create mode 100644 linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.buster.list create mode 100644 linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.sid.list create mode 100644 linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.10.3/main/.env b/linux/nginx/1.10.3/main/.env new file mode 100644 index 000000000..a551a7859 --- /dev/null +++ b/linux/nginx/1.10.3/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.10.3 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.10.3.tar.gz diff --git a/linux/nginx/1.10.3/main/Dockerfile b/linux/nginx/1.10.3/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.10.3/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.10.3/main/Makefile b/linux/nginx/1.10.3/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.10.3/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.10.3/main/README.md b/linux/nginx/1.10.3/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/main/docker-compose.yml b/linux/nginx/1.10.3/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/main/pre/ip2location-description-pak b/linux/nginx/1.10.3/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.10.3/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.10.3/main/pre/luajit2-description-pak b/linux/nginx/1.10.3/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/nginx/1.10.3/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.10.3/main/pre/nginx-description-pak b/linux/nginx/1.10.3/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.10.3/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.10.3/php/Makefile b/linux/nginx/1.10.3/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.10.3/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.10.3/php/README.md b/linux/nginx/1.10.3/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/php/docker-compose.yml b/linux/nginx/1.10.3/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/rtmp-hls/.env b/linux/nginx/1.10.3/rtmp-hls/.env new file mode 100644 index 000000000..a551a7859 --- /dev/null +++ b/linux/nginx/1.10.3/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.10.3 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.10.3.tar.gz diff --git a/linux/nginx/1.10.3/rtmp-hls/Dockerfile b/linux/nginx/1.10.3/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/rtmp-hls/Makefile b/linux/nginx/1.10.3/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.10.3/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.10.3/rtmp-hls/README.md b/linux/nginx/1.10.3/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/rtmp-hls/conf/nginx.conf b/linux/nginx/1.10.3/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.10.3/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.10.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/rtmp-hls/docker-compose.yml b/linux/nginx/1.10.3/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/nginx/1.10.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/nginx/1.10.3/rtmp-hls/players/dash.html b/linux/nginx/1.10.3/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.10.3/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.10.3/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.10.3/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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/nginx/1.11.13/main/.env b/linux/nginx/1.11.13/main/.env new file mode 100644 index 000000000..08e6c302b --- /dev/null +++ b/linux/nginx/1.11.13/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.11.13 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.11.13.tar.gz diff --git a/linux/nginx/1.11.13/main/Dockerfile b/linux/nginx/1.11.13/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.11.13/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.11.13/main/Makefile b/linux/nginx/1.11.13/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.11.13/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.11.13/main/README.md b/linux/nginx/1.11.13/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.11.13/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/nginx/1.11.13/main/docker-compose.yml b/linux/nginx/1.11.13/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/nginx/1.11.13/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/1.11.13/main/pre/ip2location-description-pak b/linux/nginx/1.11.13/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.11.13/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.11.13/main/pre/luajit2-description-pak b/linux/nginx/1.11.13/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/nginx/1.11.13/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.11.13/main/pre/nginx-description-pak b/linux/nginx/1.11.13/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/nginx/1.11.13/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/nginx/1.11.13/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.11.13/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.11.13/php/Makefile b/linux/nginx/1.11.13/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.11.13/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.11.13/php/README.md b/linux/nginx/1.11.13/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.11.13/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/nginx/1.11.13/php/docker-compose.yml b/linux/nginx/1.11.13/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/nginx/1.11.13/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/nginx/1.11.13/rtmp-hls/.env b/linux/nginx/1.11.13/rtmp-hls/.env new file mode 100644 index 000000000..08e6c302b --- /dev/null +++ b/linux/nginx/1.11.13/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.11.13 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.11.13.tar.gz diff --git a/linux/nginx/1.11.13/rtmp-hls/Dockerfile b/linux/nginx/1.11.13/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/nginx/1.11.13/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/nginx/1.11.13/rtmp-hls/Makefile b/linux/nginx/1.11.13/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.11.13/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.11.13/rtmp-hls/README.md b/linux/nginx/1.11.13/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/nginx/1.11.13/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/nginx/1.11.13/rtmp-hls/conf/nginx.conf b/linux/nginx/1.11.13/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/nginx/1.11.13/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/nginx/1.11.13/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.11.13/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/nginx/1.11.13/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/nginx/1.11.13/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.11.13/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/nginx/1.11.13/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/nginx/1.11.13/rtmp-hls/docker-compose.yml b/linux/nginx/1.11.13/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/nginx/1.11.13/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/1.11.13/rtmp-hls/players/dash.html b/linux/nginx/1.11.13/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.11.13/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.11.13/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.11.13/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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/nginx/1.12.2/main/.env b/linux/nginx/1.12.2/main/.env new file mode 100644 index 000000000..adf7ed3e1 --- /dev/null +++ b/linux/nginx/1.12.2/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.12.2 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.12.2.tar.gz diff --git a/linux/nginx/1.12.2/main/Dockerfile b/linux/nginx/1.12.2/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.12.2/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.12.2/main/Makefile b/linux/nginx/1.12.2/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.12.2/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.12.2/main/README.md b/linux/nginx/1.12.2/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.12.2/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/nginx/1.12.2/main/docker-compose.yml b/linux/nginx/1.12.2/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/nginx/1.12.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/1.12.2/main/pre/ip2location-description-pak b/linux/nginx/1.12.2/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.12.2/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.12.2/main/pre/luajit2-description-pak b/linux/nginx/1.12.2/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/nginx/1.12.2/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.12.2/main/pre/nginx-description-pak b/linux/nginx/1.12.2/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/nginx/1.12.2/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/nginx/1.12.2/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.12.2/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.12.2/php/Makefile b/linux/nginx/1.12.2/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.12.2/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.12.2/php/README.md b/linux/nginx/1.12.2/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.12.2/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/nginx/1.12.2/php/docker-compose.yml b/linux/nginx/1.12.2/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/nginx/1.12.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/nginx/1.12.2/rtmp-hls/.env b/linux/nginx/1.12.2/rtmp-hls/.env new file mode 100644 index 000000000..adf7ed3e1 --- /dev/null +++ b/linux/nginx/1.12.2/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.12.2 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.12.2.tar.gz diff --git a/linux/nginx/1.12.2/rtmp-hls/Dockerfile b/linux/nginx/1.12.2/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/nginx/1.12.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/nginx/1.12.2/rtmp-hls/Makefile b/linux/nginx/1.12.2/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.12.2/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.12.2/rtmp-hls/README.md b/linux/nginx/1.12.2/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/nginx/1.12.2/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/nginx/1.12.2/rtmp-hls/conf/nginx.conf b/linux/nginx/1.12.2/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/nginx/1.12.2/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/nginx/1.12.2/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.12.2/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/nginx/1.12.2/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/nginx/1.12.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.12.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/nginx/1.12.2/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/nginx/1.12.2/rtmp-hls/docker-compose.yml b/linux/nginx/1.12.2/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/nginx/1.12.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/1.12.2/rtmp-hls/players/dash.html b/linux/nginx/1.12.2/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.12.2/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.12.2/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.12.2/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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/nginx/1.13.12/main/.env b/linux/nginx/1.13.12/main/.env new file mode 100644 index 000000000..5c9842833 --- /dev/null +++ b/linux/nginx/1.13.12/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.13.12 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.13.12.tar.gz diff --git a/linux/nginx/1.13.12/main/Dockerfile b/linux/nginx/1.13.12/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.13.12/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.13.12/main/Makefile b/linux/nginx/1.13.12/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.13.12/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.13.12/main/README.md b/linux/nginx/1.13.12/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/main/docker-compose.yml b/linux/nginx/1.13.12/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/main/pre/ip2location-description-pak b/linux/nginx/1.13.12/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.13.12/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.13.12/main/pre/luajit2-description-pak b/linux/nginx/1.13.12/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/nginx/1.13.12/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.13.12/main/pre/nginx-description-pak b/linux/nginx/1.13.12/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.13.12/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.13.12/php/Makefile b/linux/nginx/1.13.12/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.13.12/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.13.12/php/README.md b/linux/nginx/1.13.12/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/php/docker-compose.yml b/linux/nginx/1.13.12/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/rtmp-hls/.env b/linux/nginx/1.13.12/rtmp-hls/.env new file mode 100644 index 000000000..5c9842833 --- /dev/null +++ b/linux/nginx/1.13.12/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.13.12 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.13.12.tar.gz diff --git a/linux/nginx/1.13.12/rtmp-hls/Dockerfile b/linux/nginx/1.13.12/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/rtmp-hls/Makefile b/linux/nginx/1.13.12/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.13.12/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.13.12/rtmp-hls/README.md b/linux/nginx/1.13.12/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/rtmp-hls/conf/nginx.conf b/linux/nginx/1.13.12/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.13.12/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.13.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/rtmp-hls/docker-compose.yml b/linux/nginx/1.13.12/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/nginx/1.13.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/nginx/1.13.12/rtmp-hls/players/dash.html b/linux/nginx/1.13.12/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.13.12/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.13.12/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.13.12/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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/nginx/1.9.15/main/.env b/linux/nginx/1.9.15/main/.env new file mode 100644 index 000000000..cc88747df --- /dev/null +++ b/linux/nginx/1.9.15/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.9.15 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.9.15.tar.gz diff --git a/linux/nginx/1.9.15/main/Dockerfile b/linux/nginx/1.9.15/main/Dockerfile new file mode 100644 index 000000000..aef90bcb1 --- /dev/null +++ b/linux/nginx/1.9.15/main/Dockerfile @@ -0,0 +1,235 @@ +################################################################## +# 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 && \ + ./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 && \ + 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ + 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/1.9.15/main/Makefile b/linux/nginx/1.9.15/main/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.9.15/main/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.9.15/main/README.md b/linux/nginx/1.9.15/main/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.9.15/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/nginx/1.9.15/main/docker-compose.yml b/linux/nginx/1.9.15/main/docker-compose.yml new file mode 100644 index 000000000..4d5d761fb --- /dev/null +++ b/linux/nginx/1.9.15/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/1.9.15/main/pre/ip2location-description-pak b/linux/nginx/1.9.15/main/pre/ip2location-description-pak new file mode 100644 index 000000000..e93eb7783 --- /dev/null +++ b/linux/nginx/1.9.15/main/pre/ip2location-description-pak @@ -0,0 +1 @@ +Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.9.15/main/pre/luajit2-description-pak b/linux/nginx/1.9.15/main/pre/luajit2-description-pak new file mode 100644 index 000000000..4305e8e88 --- /dev/null +++ b/linux/nginx/1.9.15/main/pre/luajit2-description-pak @@ -0,0 +1 @@ +Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.9.15/main/pre/nginx-description-pak b/linux/nginx/1.9.15/main/pre/nginx-description-pak new file mode 100644 index 000000000..b6c186ed8 --- /dev/null +++ b/linux/nginx/1.9.15/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/nginx/1.9.15/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.9.15/main/pre/ngninx.pre.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 ${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/1.9.15/php/Makefile b/linux/nginx/1.9.15/php/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.9.15/php/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.9.15/php/README.md b/linux/nginx/1.9.15/php/README.md new file mode 100644 index 000000000..034784bc0 --- /dev/null +++ b/linux/nginx/1.9.15/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/nginx/1.9.15/php/docker-compose.yml b/linux/nginx/1.9.15/php/docker-compose.yml new file mode 100644 index 000000000..0968ca6c1 --- /dev/null +++ b/linux/nginx/1.9.15/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/nginx/1.9.15/rtmp-hls/.env b/linux/nginx/1.9.15/rtmp-hls/.env new file mode 100644 index 000000000..cc88747df --- /dev/null +++ b/linux/nginx/1.9.15/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.9.15 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.9.15.tar.gz diff --git a/linux/nginx/1.9.15/rtmp-hls/Dockerfile b/linux/nginx/1.9.15/rtmp-hls/Dockerfile new file mode 100644 index 000000000..d7d9b5901 --- /dev/null +++ b/linux/nginx/1.9.15/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/nginx/1.9.15/rtmp-hls/Makefile b/linux/nginx/1.9.15/rtmp-hls/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/nginx/1.9.15/rtmp-hls/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/nginx/1.9.15/rtmp-hls/README.md b/linux/nginx/1.9.15/rtmp-hls/README.md new file mode 100644 index 000000000..d5a0ec5cc --- /dev/null +++ b/linux/nginx/1.9.15/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/nginx/1.9.15/rtmp-hls/conf/nginx.conf b/linux/nginx/1.9.15/rtmp-hls/conf/nginx.conf new file mode 100644 index 000000000..938da01e2 --- /dev/null +++ b/linux/nginx/1.9.15/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/nginx/1.9.15/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.9.15/rtmp-hls/conf/nginx_no-ffmpeg.conf new file mode 100644 index 000000000..99644e14f --- /dev/null +++ b/linux/nginx/1.9.15/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/nginx/1.9.15/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.9.15/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf new file mode 100644 index 000000000..780a1d1ff --- /dev/null +++ b/linux/nginx/1.9.15/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/nginx/1.9.15/rtmp-hls/docker-compose.yml b/linux/nginx/1.9.15/rtmp-hls/docker-compose.yml new file mode 100644 index 000000000..3c46aedbd --- /dev/null +++ b/linux/nginx/1.9.15/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/1.9.15/rtmp-hls/players/dash.html b/linux/nginx/1.9.15/rtmp-hls/players/dash.html new file mode 100644 index 000000000..12b8df786 --- /dev/null +++ b/linux/nginx/1.9.15/rtmp-hls/players/dash.html @@ -0,0 +1,23 @@ + + + + + DASH Live Streaming + + + + +

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

+ + +

HLS Player

+ + + + + diff --git a/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.buster.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.buster.list @@ -0,0 +1,19 @@ +#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/1.9.15/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.sid.list new file mode 100644 index 000000000..677a95436 --- /dev/null +++ b/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.sid.list @@ -0,0 +1,19 @@ +#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/1.9.15/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.stretch.list new file mode 100644 index 000000000..ff15154c3 --- /dev/null +++ b/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.stretch.list @@ -0,0 +1,19 @@ +#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 From 05d9d79dec879ce79f50e1b4095ef673b0c698c3 Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 3 Jun 2021 01:26:02 +0300 Subject: [PATCH 069/144] nginx old images deleted --- linux/nginx/1.10.3/main/.env | 2 - linux/nginx/1.10.3/main/Dockerfile | 235 ---------------- linux/nginx/1.10.3/main/Makefile | 5 - linux/nginx/1.10.3/main/README.md | 30 -- linux/nginx/1.10.3/main/docker-compose.yml | 9 - .../main/pre/ip2location-description-pak | 1 - .../1.10.3/main/pre/luajit2-description-pak | 1 - .../1.10.3/main/pre/nginx-description-pak | 1 - linux/nginx/1.10.3/main/pre/ngninx.pre.tar.gz | Bin 9573 -> 0 bytes linux/nginx/1.10.3/php/.env | 2 - linux/nginx/1.10.3/php/Dockerfile | 257 ------------------ linux/nginx/1.10.3/php/Makefile | 5 - linux/nginx/1.10.3/php/README.md | 30 -- linux/nginx/1.10.3/php/docker-compose.yml | 9 - linux/nginx/1.10.3/rtmp-hls/.env | 2 - linux/nginx/1.10.3/rtmp-hls/Dockerfile | 127 --------- linux/nginx/1.10.3/rtmp-hls/Makefile | 5 - linux/nginx/1.10.3/rtmp-hls/README.md | 78 ------ linux/nginx/1.10.3/rtmp-hls/conf/nginx.conf | 134 --------- .../1.10.3/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 -------- .../conf/nginx_rtmp_minimal_no-stats.conf | 16 -- .../nginx/1.10.3/rtmp-hls/docker-compose.yml | 9 - linux/nginx/1.10.3/rtmp-hls/players/dash.html | 23 -- linux/nginx/1.10.3/rtmp-hls/players/hls.html | 23 -- .../1.10.3/rtmp-hls/players/hls_hlsjs.html | 41 --- linux/nginx/1.10.3/rtmp-hls/players/rtmp.html | 24 -- .../1.10.3/rtmp-hls/players/rtmp_hls.html | 30 -- .../sources.list.d/sources.buster.list | 19 -- .../rtmp-hls/sources.list.d/sources.sid.list | 19 -- .../sources.list.d/sources.stretch.list | 19 -- linux/nginx/1.11.13/main/.env | 2 - linux/nginx/1.11.13/main/Dockerfile | 235 ---------------- linux/nginx/1.11.13/main/Makefile | 5 - linux/nginx/1.11.13/main/README.md | 30 -- linux/nginx/1.11.13/main/docker-compose.yml | 9 - .../main/pre/ip2location-description-pak | 1 - .../1.11.13/main/pre/luajit2-description-pak | 1 - .../1.11.13/main/pre/nginx-description-pak | 1 - .../nginx/1.11.13/main/pre/ngninx.pre.tar.gz | Bin 9573 -> 0 bytes linux/nginx/1.11.13/php/.env | 2 - linux/nginx/1.11.13/php/Dockerfile | 257 ------------------ linux/nginx/1.11.13/php/Makefile | 5 - linux/nginx/1.11.13/php/README.md | 30 -- linux/nginx/1.11.13/php/docker-compose.yml | 9 - linux/nginx/1.11.13/rtmp-hls/.env | 2 - linux/nginx/1.11.13/rtmp-hls/Dockerfile | 127 --------- linux/nginx/1.11.13/rtmp-hls/Makefile | 5 - linux/nginx/1.11.13/rtmp-hls/README.md | 78 ------ linux/nginx/1.11.13/rtmp-hls/conf/nginx.conf | 134 --------- .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 -------- .../conf/nginx_rtmp_minimal_no-stats.conf | 16 -- .../nginx/1.11.13/rtmp-hls/docker-compose.yml | 9 - .../nginx/1.11.13/rtmp-hls/players/dash.html | 23 -- linux/nginx/1.11.13/rtmp-hls/players/hls.html | 23 -- .../1.11.13/rtmp-hls/players/hls_hlsjs.html | 41 --- .../nginx/1.11.13/rtmp-hls/players/rtmp.html | 24 -- .../1.11.13/rtmp-hls/players/rtmp_hls.html | 30 -- .../sources.list.d/sources.buster.list | 19 -- .../rtmp-hls/sources.list.d/sources.sid.list | 19 -- .../sources.list.d/sources.stretch.list | 19 -- linux/nginx/1.12.2/main/.env | 2 - linux/nginx/1.12.2/main/Dockerfile | 235 ---------------- linux/nginx/1.12.2/main/Makefile | 5 - linux/nginx/1.12.2/main/README.md | 30 -- linux/nginx/1.12.2/main/docker-compose.yml | 9 - .../main/pre/ip2location-description-pak | 1 - .../1.12.2/main/pre/luajit2-description-pak | 1 - .../1.12.2/main/pre/nginx-description-pak | 1 - linux/nginx/1.12.2/main/pre/ngninx.pre.tar.gz | Bin 9573 -> 0 bytes linux/nginx/1.12.2/php/.env | 2 - linux/nginx/1.12.2/php/Dockerfile | 257 ------------------ linux/nginx/1.12.2/php/Makefile | 5 - linux/nginx/1.12.2/php/README.md | 30 -- linux/nginx/1.12.2/php/docker-compose.yml | 9 - linux/nginx/1.12.2/rtmp-hls/.env | 2 - linux/nginx/1.12.2/rtmp-hls/Dockerfile | 127 --------- linux/nginx/1.12.2/rtmp-hls/Makefile | 5 - linux/nginx/1.12.2/rtmp-hls/README.md | 78 ------ linux/nginx/1.12.2/rtmp-hls/conf/nginx.conf | 134 --------- .../1.12.2/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 -------- .../conf/nginx_rtmp_minimal_no-stats.conf | 16 -- .../nginx/1.12.2/rtmp-hls/docker-compose.yml | 9 - linux/nginx/1.12.2/rtmp-hls/players/dash.html | 23 -- linux/nginx/1.12.2/rtmp-hls/players/hls.html | 23 -- .../1.12.2/rtmp-hls/players/hls_hlsjs.html | 41 --- linux/nginx/1.12.2/rtmp-hls/players/rtmp.html | 24 -- .../1.12.2/rtmp-hls/players/rtmp_hls.html | 30 -- .../sources.list.d/sources.buster.list | 19 -- .../rtmp-hls/sources.list.d/sources.sid.list | 19 -- .../sources.list.d/sources.stretch.list | 19 -- linux/nginx/1.13.12/main/.env | 2 - linux/nginx/1.13.12/main/Dockerfile | 235 ---------------- linux/nginx/1.13.12/main/Makefile | 5 - linux/nginx/1.13.12/main/README.md | 30 -- linux/nginx/1.13.12/main/docker-compose.yml | 9 - .../main/pre/ip2location-description-pak | 1 - .../1.13.12/main/pre/luajit2-description-pak | 1 - .../1.13.12/main/pre/nginx-description-pak | 1 - .../nginx/1.13.12/main/pre/ngninx.pre.tar.gz | Bin 9573 -> 0 bytes linux/nginx/1.13.12/php/.env | 2 - linux/nginx/1.13.12/php/Dockerfile | 257 ------------------ linux/nginx/1.13.12/php/Makefile | 5 - linux/nginx/1.13.12/php/README.md | 30 -- linux/nginx/1.13.12/php/docker-compose.yml | 9 - linux/nginx/1.13.12/rtmp-hls/.env | 2 - linux/nginx/1.13.12/rtmp-hls/Dockerfile | 127 --------- linux/nginx/1.13.12/rtmp-hls/Makefile | 5 - linux/nginx/1.13.12/rtmp-hls/README.md | 78 ------ linux/nginx/1.13.12/rtmp-hls/conf/nginx.conf | 134 --------- .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 -------- .../conf/nginx_rtmp_minimal_no-stats.conf | 16 -- .../nginx/1.13.12/rtmp-hls/docker-compose.yml | 9 - .../nginx/1.13.12/rtmp-hls/players/dash.html | 23 -- linux/nginx/1.13.12/rtmp-hls/players/hls.html | 23 -- .../1.13.12/rtmp-hls/players/hls_hlsjs.html | 41 --- .../nginx/1.13.12/rtmp-hls/players/rtmp.html | 24 -- .../1.13.12/rtmp-hls/players/rtmp_hls.html | 30 -- .../sources.list.d/sources.buster.list | 19 -- .../rtmp-hls/sources.list.d/sources.sid.list | 19 -- .../sources.list.d/sources.stretch.list | 19 -- linux/nginx/1.9.15/main/.env | 2 - linux/nginx/1.9.15/main/Dockerfile | 235 ---------------- linux/nginx/1.9.15/main/Makefile | 5 - linux/nginx/1.9.15/main/README.md | 30 -- linux/nginx/1.9.15/main/docker-compose.yml | 9 - .../main/pre/ip2location-description-pak | 1 - .../1.9.15/main/pre/luajit2-description-pak | 1 - .../1.9.15/main/pre/nginx-description-pak | 1 - linux/nginx/1.9.15/main/pre/ngninx.pre.tar.gz | Bin 9573 -> 0 bytes linux/nginx/1.9.15/php/.env | 2 - linux/nginx/1.9.15/php/Dockerfile | 257 ------------------ linux/nginx/1.9.15/php/Makefile | 5 - linux/nginx/1.9.15/php/README.md | 30 -- linux/nginx/1.9.15/php/docker-compose.yml | 9 - linux/nginx/1.9.15/rtmp-hls/.env | 2 - linux/nginx/1.9.15/rtmp-hls/Dockerfile | 127 --------- linux/nginx/1.9.15/rtmp-hls/Makefile | 5 - linux/nginx/1.9.15/rtmp-hls/README.md | 78 ------ linux/nginx/1.9.15/rtmp-hls/conf/nginx.conf | 134 --------- .../1.9.15/rtmp-hls/conf/nginx_no-ffmpeg.conf | 118 -------- .../conf/nginx_rtmp_minimal_no-stats.conf | 16 -- .../nginx/1.9.15/rtmp-hls/docker-compose.yml | 9 - linux/nginx/1.9.15/rtmp-hls/players/dash.html | 23 -- linux/nginx/1.9.15/rtmp-hls/players/hls.html | 23 -- .../1.9.15/rtmp-hls/players/hls_hlsjs.html | 41 --- linux/nginx/1.9.15/rtmp-hls/players/rtmp.html | 24 -- .../1.9.15/rtmp-hls/players/rtmp_hls.html | 30 -- .../sources.list.d/sources.buster.list | 19 -- .../rtmp-hls/sources.list.d/sources.sid.list | 19 -- .../sources.list.d/sources.stretch.list | 19 -- 150 files changed, 6370 deletions(-) delete mode 100644 linux/nginx/1.10.3/main/.env delete mode 100644 linux/nginx/1.10.3/main/Dockerfile delete mode 100644 linux/nginx/1.10.3/main/Makefile delete mode 100644 linux/nginx/1.10.3/main/README.md delete mode 100644 linux/nginx/1.10.3/main/docker-compose.yml delete mode 100644 linux/nginx/1.10.3/main/pre/ip2location-description-pak delete mode 100644 linux/nginx/1.10.3/main/pre/luajit2-description-pak delete mode 100644 linux/nginx/1.10.3/main/pre/nginx-description-pak delete mode 100644 linux/nginx/1.10.3/main/pre/ngninx.pre.tar.gz delete mode 100644 linux/nginx/1.10.3/php/.env delete mode 100644 linux/nginx/1.10.3/php/Dockerfile delete mode 100644 linux/nginx/1.10.3/php/Makefile delete mode 100644 linux/nginx/1.10.3/php/README.md delete mode 100644 linux/nginx/1.10.3/php/docker-compose.yml delete mode 100644 linux/nginx/1.10.3/rtmp-hls/.env delete mode 100644 linux/nginx/1.10.3/rtmp-hls/Dockerfile delete mode 100644 linux/nginx/1.10.3/rtmp-hls/Makefile delete mode 100644 linux/nginx/1.10.3/rtmp-hls/README.md delete mode 100644 linux/nginx/1.10.3/rtmp-hls/conf/nginx.conf delete mode 100644 linux/nginx/1.10.3/rtmp-hls/conf/nginx_no-ffmpeg.conf delete mode 100644 linux/nginx/1.10.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf delete mode 100644 linux/nginx/1.10.3/rtmp-hls/docker-compose.yml delete mode 100644 linux/nginx/1.10.3/rtmp-hls/players/dash.html delete mode 100644 linux/nginx/1.10.3/rtmp-hls/players/hls.html delete mode 100644 linux/nginx/1.10.3/rtmp-hls/players/hls_hlsjs.html delete mode 100644 linux/nginx/1.10.3/rtmp-hls/players/rtmp.html delete mode 100644 linux/nginx/1.10.3/rtmp-hls/players/rtmp_hls.html delete mode 100644 linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.buster.list delete mode 100644 linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.sid.list delete mode 100644 linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.stretch.list delete mode 100644 linux/nginx/1.11.13/main/.env delete mode 100644 linux/nginx/1.11.13/main/Dockerfile delete mode 100644 linux/nginx/1.11.13/main/Makefile delete mode 100644 linux/nginx/1.11.13/main/README.md delete mode 100644 linux/nginx/1.11.13/main/docker-compose.yml delete mode 100644 linux/nginx/1.11.13/main/pre/ip2location-description-pak delete mode 100644 linux/nginx/1.11.13/main/pre/luajit2-description-pak delete mode 100644 linux/nginx/1.11.13/main/pre/nginx-description-pak delete mode 100644 linux/nginx/1.11.13/main/pre/ngninx.pre.tar.gz delete mode 100644 linux/nginx/1.11.13/php/.env delete mode 100644 linux/nginx/1.11.13/php/Dockerfile delete mode 100644 linux/nginx/1.11.13/php/Makefile delete mode 100644 linux/nginx/1.11.13/php/README.md delete mode 100644 linux/nginx/1.11.13/php/docker-compose.yml delete mode 100644 linux/nginx/1.11.13/rtmp-hls/.env delete mode 100644 linux/nginx/1.11.13/rtmp-hls/Dockerfile delete mode 100644 linux/nginx/1.11.13/rtmp-hls/Makefile delete mode 100644 linux/nginx/1.11.13/rtmp-hls/README.md delete mode 100644 linux/nginx/1.11.13/rtmp-hls/conf/nginx.conf delete mode 100644 linux/nginx/1.11.13/rtmp-hls/conf/nginx_no-ffmpeg.conf delete mode 100644 linux/nginx/1.11.13/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf delete mode 100644 linux/nginx/1.11.13/rtmp-hls/docker-compose.yml delete mode 100644 linux/nginx/1.11.13/rtmp-hls/players/dash.html delete mode 100644 linux/nginx/1.11.13/rtmp-hls/players/hls.html delete mode 100644 linux/nginx/1.11.13/rtmp-hls/players/hls_hlsjs.html delete mode 100644 linux/nginx/1.11.13/rtmp-hls/players/rtmp.html delete mode 100644 linux/nginx/1.11.13/rtmp-hls/players/rtmp_hls.html delete mode 100644 linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.buster.list delete mode 100644 linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.sid.list delete mode 100644 linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.stretch.list delete mode 100644 linux/nginx/1.12.2/main/.env delete mode 100644 linux/nginx/1.12.2/main/Dockerfile delete mode 100644 linux/nginx/1.12.2/main/Makefile delete mode 100644 linux/nginx/1.12.2/main/README.md delete mode 100644 linux/nginx/1.12.2/main/docker-compose.yml delete mode 100644 linux/nginx/1.12.2/main/pre/ip2location-description-pak delete mode 100644 linux/nginx/1.12.2/main/pre/luajit2-description-pak delete mode 100644 linux/nginx/1.12.2/main/pre/nginx-description-pak delete mode 100644 linux/nginx/1.12.2/main/pre/ngninx.pre.tar.gz delete mode 100644 linux/nginx/1.12.2/php/.env delete mode 100644 linux/nginx/1.12.2/php/Dockerfile delete mode 100644 linux/nginx/1.12.2/php/Makefile delete mode 100644 linux/nginx/1.12.2/php/README.md delete mode 100644 linux/nginx/1.12.2/php/docker-compose.yml delete mode 100644 linux/nginx/1.12.2/rtmp-hls/.env delete mode 100644 linux/nginx/1.12.2/rtmp-hls/Dockerfile delete mode 100644 linux/nginx/1.12.2/rtmp-hls/Makefile delete mode 100644 linux/nginx/1.12.2/rtmp-hls/README.md delete mode 100644 linux/nginx/1.12.2/rtmp-hls/conf/nginx.conf delete mode 100644 linux/nginx/1.12.2/rtmp-hls/conf/nginx_no-ffmpeg.conf delete mode 100644 linux/nginx/1.12.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf delete mode 100644 linux/nginx/1.12.2/rtmp-hls/docker-compose.yml delete mode 100644 linux/nginx/1.12.2/rtmp-hls/players/dash.html delete mode 100644 linux/nginx/1.12.2/rtmp-hls/players/hls.html delete mode 100644 linux/nginx/1.12.2/rtmp-hls/players/hls_hlsjs.html delete mode 100644 linux/nginx/1.12.2/rtmp-hls/players/rtmp.html delete mode 100644 linux/nginx/1.12.2/rtmp-hls/players/rtmp_hls.html delete mode 100644 linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.buster.list delete mode 100644 linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.sid.list delete mode 100644 linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.stretch.list delete mode 100644 linux/nginx/1.13.12/main/.env delete mode 100644 linux/nginx/1.13.12/main/Dockerfile delete mode 100644 linux/nginx/1.13.12/main/Makefile delete mode 100644 linux/nginx/1.13.12/main/README.md delete mode 100644 linux/nginx/1.13.12/main/docker-compose.yml delete mode 100644 linux/nginx/1.13.12/main/pre/ip2location-description-pak delete mode 100644 linux/nginx/1.13.12/main/pre/luajit2-description-pak delete mode 100644 linux/nginx/1.13.12/main/pre/nginx-description-pak delete mode 100644 linux/nginx/1.13.12/main/pre/ngninx.pre.tar.gz delete mode 100644 linux/nginx/1.13.12/php/.env delete mode 100644 linux/nginx/1.13.12/php/Dockerfile delete mode 100644 linux/nginx/1.13.12/php/Makefile delete mode 100644 linux/nginx/1.13.12/php/README.md delete mode 100644 linux/nginx/1.13.12/php/docker-compose.yml delete mode 100644 linux/nginx/1.13.12/rtmp-hls/.env delete mode 100644 linux/nginx/1.13.12/rtmp-hls/Dockerfile delete mode 100644 linux/nginx/1.13.12/rtmp-hls/Makefile delete mode 100644 linux/nginx/1.13.12/rtmp-hls/README.md delete mode 100644 linux/nginx/1.13.12/rtmp-hls/conf/nginx.conf delete mode 100644 linux/nginx/1.13.12/rtmp-hls/conf/nginx_no-ffmpeg.conf delete mode 100644 linux/nginx/1.13.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf delete mode 100644 linux/nginx/1.13.12/rtmp-hls/docker-compose.yml delete mode 100644 linux/nginx/1.13.12/rtmp-hls/players/dash.html delete mode 100644 linux/nginx/1.13.12/rtmp-hls/players/hls.html delete mode 100644 linux/nginx/1.13.12/rtmp-hls/players/hls_hlsjs.html delete mode 100644 linux/nginx/1.13.12/rtmp-hls/players/rtmp.html delete mode 100644 linux/nginx/1.13.12/rtmp-hls/players/rtmp_hls.html delete mode 100644 linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.buster.list delete mode 100644 linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.sid.list delete mode 100644 linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.stretch.list delete mode 100644 linux/nginx/1.9.15/main/.env delete mode 100644 linux/nginx/1.9.15/main/Dockerfile delete mode 100644 linux/nginx/1.9.15/main/Makefile delete mode 100644 linux/nginx/1.9.15/main/README.md delete mode 100644 linux/nginx/1.9.15/main/docker-compose.yml delete mode 100644 linux/nginx/1.9.15/main/pre/ip2location-description-pak delete mode 100644 linux/nginx/1.9.15/main/pre/luajit2-description-pak delete mode 100644 linux/nginx/1.9.15/main/pre/nginx-description-pak delete mode 100644 linux/nginx/1.9.15/main/pre/ngninx.pre.tar.gz delete mode 100644 linux/nginx/1.9.15/php/.env delete mode 100644 linux/nginx/1.9.15/php/Dockerfile delete mode 100644 linux/nginx/1.9.15/php/Makefile delete mode 100644 linux/nginx/1.9.15/php/README.md delete mode 100644 linux/nginx/1.9.15/php/docker-compose.yml delete mode 100644 linux/nginx/1.9.15/rtmp-hls/.env delete mode 100644 linux/nginx/1.9.15/rtmp-hls/Dockerfile delete mode 100644 linux/nginx/1.9.15/rtmp-hls/Makefile delete mode 100644 linux/nginx/1.9.15/rtmp-hls/README.md delete mode 100644 linux/nginx/1.9.15/rtmp-hls/conf/nginx.conf delete mode 100644 linux/nginx/1.9.15/rtmp-hls/conf/nginx_no-ffmpeg.conf delete mode 100644 linux/nginx/1.9.15/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf delete mode 100644 linux/nginx/1.9.15/rtmp-hls/docker-compose.yml delete mode 100644 linux/nginx/1.9.15/rtmp-hls/players/dash.html delete mode 100644 linux/nginx/1.9.15/rtmp-hls/players/hls.html delete mode 100644 linux/nginx/1.9.15/rtmp-hls/players/hls_hlsjs.html delete mode 100644 linux/nginx/1.9.15/rtmp-hls/players/rtmp.html delete mode 100644 linux/nginx/1.9.15/rtmp-hls/players/rtmp_hls.html delete mode 100644 linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.buster.list delete mode 100644 linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.sid.list delete mode 100644 linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.10.3/main/.env b/linux/nginx/1.10.3/main/.env deleted file mode 100644 index a551a7859..000000000 --- a/linux/nginx/1.10.3/main/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.10.3 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.10.3.tar.gz diff --git a/linux/nginx/1.10.3/main/Dockerfile b/linux/nginx/1.10.3/main/Dockerfile deleted file mode 100644 index aef90bcb1..000000000 --- a/linux/nginx/1.10.3/main/Dockerfile +++ /dev/null @@ -1,235 +0,0 @@ -################################################################## -# 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 && \ - ./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 && \ - 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ - 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/1.10.3/main/Makefile b/linux/nginx/1.10.3/main/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.10.3/main/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.10.3/main/README.md b/linux/nginx/1.10.3/main/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.10.3/main/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.10.3/main/docker-compose.yml b/linux/nginx/1.10.3/main/docker-compose.yml deleted file mode 100644 index 4d5d761fb..000000000 --- a/linux/nginx/1.10.3/main/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.10.3/main/pre/ip2location-description-pak b/linux/nginx/1.10.3/main/pre/ip2location-description-pak deleted file mode 100644 index e93eb7783..000000000 --- a/linux/nginx/1.10.3/main/pre/ip2location-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.10.3/main/pre/luajit2-description-pak b/linux/nginx/1.10.3/main/pre/luajit2-description-pak deleted file mode 100644 index 4305e8e88..000000000 --- a/linux/nginx/1.10.3/main/pre/luajit2-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.10.3/main/pre/nginx-description-pak b/linux/nginx/1.10.3/main/pre/nginx-description-pak deleted file mode 100644 index b6c186ed8..000000000 --- a/linux/nginx/1.10.3/main/pre/nginx-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/nginx/1.10.3/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.10.3/main/pre/ngninx.pre.tar.gz deleted file mode 100644 index bf9c2735172faf460d34cb157f13291f42cdef88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9573 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 ${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/1.10.3/php/Makefile b/linux/nginx/1.10.3/php/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.10.3/php/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.10.3/php/README.md b/linux/nginx/1.10.3/php/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.10.3/php/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.10.3/php/docker-compose.yml b/linux/nginx/1.10.3/php/docker-compose.yml deleted file mode 100644 index 0968ca6c1..000000000 --- a/linux/nginx/1.10.3/php/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/nginx/1.10.3/rtmp-hls/.env b/linux/nginx/1.10.3/rtmp-hls/.env deleted file mode 100644 index a551a7859..000000000 --- a/linux/nginx/1.10.3/rtmp-hls/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.10.3 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.10.3.tar.gz diff --git a/linux/nginx/1.10.3/rtmp-hls/Dockerfile b/linux/nginx/1.10.3/rtmp-hls/Dockerfile deleted file mode 100644 index d7d9b5901..000000000 --- a/linux/nginx/1.10.3/rtmp-hls/Dockerfile +++ /dev/null @@ -1,127 +0,0 @@ -################################################################## -# 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/nginx/1.10.3/rtmp-hls/Makefile b/linux/nginx/1.10.3/rtmp-hls/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.10.3/rtmp-hls/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.10.3/rtmp-hls/README.md b/linux/nginx/1.10.3/rtmp-hls/README.md deleted file mode 100644 index d5a0ec5cc..000000000 --- a/linux/nginx/1.10.3/rtmp-hls/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# 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/nginx/1.10.3/rtmp-hls/conf/nginx.conf b/linux/nginx/1.10.3/rtmp-hls/conf/nginx.conf deleted file mode 100644 index 938da01e2..000000000 --- a/linux/nginx/1.10.3/rtmp-hls/conf/nginx.conf +++ /dev/null @@ -1,134 +0,0 @@ -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/nginx/1.10.3/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.10.3/rtmp-hls/conf/nginx_no-ffmpeg.conf deleted file mode 100644 index 99644e14f..000000000 --- a/linux/nginx/1.10.3/rtmp-hls/conf/nginx_no-ffmpeg.conf +++ /dev/null @@ -1,118 +0,0 @@ -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/nginx/1.10.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.10.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf deleted file mode 100644 index 780a1d1ff..000000000 --- a/linux/nginx/1.10.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf +++ /dev/null @@ -1,16 +0,0 @@ -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/nginx/1.10.3/rtmp-hls/docker-compose.yml b/linux/nginx/1.10.3/rtmp-hls/docker-compose.yml deleted file mode 100644 index 3c46aedbd..000000000 --- a/linux/nginx/1.10.3/rtmp-hls/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.10.3/rtmp-hls/players/dash.html b/linux/nginx/1.10.3/rtmp-hls/players/dash.html deleted file mode 100644 index 12b8df786..000000000 --- a/linux/nginx/1.10.3/rtmp-hls/players/dash.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - DASH Live Streaming - - - - -

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

- - -

HLS Player

- - - - - diff --git a/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.buster.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nginx/1.10.3/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/1.10.3/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.sid.list deleted file mode 100644 index 677a95436..000000000 --- a/linux/nginx/1.10.3/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/1.10.3/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.10.3/rtmp-hls/sources.list.d/sources.stretch.list deleted file mode 100644 index ff15154c3..000000000 --- a/linux/nginx/1.10.3/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/nginx/1.11.13/main/.env b/linux/nginx/1.11.13/main/.env deleted file mode 100644 index 08e6c302b..000000000 --- a/linux/nginx/1.11.13/main/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.11.13 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.11.13.tar.gz diff --git a/linux/nginx/1.11.13/main/Dockerfile b/linux/nginx/1.11.13/main/Dockerfile deleted file mode 100644 index aef90bcb1..000000000 --- a/linux/nginx/1.11.13/main/Dockerfile +++ /dev/null @@ -1,235 +0,0 @@ -################################################################## -# 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 && \ - ./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 && \ - 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ - 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/1.11.13/main/Makefile b/linux/nginx/1.11.13/main/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.11.13/main/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.11.13/main/README.md b/linux/nginx/1.11.13/main/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.11.13/main/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.11.13/main/docker-compose.yml b/linux/nginx/1.11.13/main/docker-compose.yml deleted file mode 100644 index 4d5d761fb..000000000 --- a/linux/nginx/1.11.13/main/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.11.13/main/pre/ip2location-description-pak b/linux/nginx/1.11.13/main/pre/ip2location-description-pak deleted file mode 100644 index e93eb7783..000000000 --- a/linux/nginx/1.11.13/main/pre/ip2location-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.11.13/main/pre/luajit2-description-pak b/linux/nginx/1.11.13/main/pre/luajit2-description-pak deleted file mode 100644 index 4305e8e88..000000000 --- a/linux/nginx/1.11.13/main/pre/luajit2-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.11.13/main/pre/nginx-description-pak b/linux/nginx/1.11.13/main/pre/nginx-description-pak deleted file mode 100644 index b6c186ed8..000000000 --- a/linux/nginx/1.11.13/main/pre/nginx-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/nginx/1.11.13/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.11.13/main/pre/ngninx.pre.tar.gz deleted file mode 100644 index bf9c2735172faf460d34cb157f13291f42cdef88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9573 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 ${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/1.11.13/php/Makefile b/linux/nginx/1.11.13/php/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.11.13/php/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.11.13/php/README.md b/linux/nginx/1.11.13/php/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.11.13/php/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.11.13/php/docker-compose.yml b/linux/nginx/1.11.13/php/docker-compose.yml deleted file mode 100644 index 0968ca6c1..000000000 --- a/linux/nginx/1.11.13/php/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/nginx/1.11.13/rtmp-hls/.env b/linux/nginx/1.11.13/rtmp-hls/.env deleted file mode 100644 index 08e6c302b..000000000 --- a/linux/nginx/1.11.13/rtmp-hls/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.11.13 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.11.13.tar.gz diff --git a/linux/nginx/1.11.13/rtmp-hls/Dockerfile b/linux/nginx/1.11.13/rtmp-hls/Dockerfile deleted file mode 100644 index d7d9b5901..000000000 --- a/linux/nginx/1.11.13/rtmp-hls/Dockerfile +++ /dev/null @@ -1,127 +0,0 @@ -################################################################## -# 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/nginx/1.11.13/rtmp-hls/Makefile b/linux/nginx/1.11.13/rtmp-hls/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.11.13/rtmp-hls/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.11.13/rtmp-hls/README.md b/linux/nginx/1.11.13/rtmp-hls/README.md deleted file mode 100644 index d5a0ec5cc..000000000 --- a/linux/nginx/1.11.13/rtmp-hls/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# 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/nginx/1.11.13/rtmp-hls/conf/nginx.conf b/linux/nginx/1.11.13/rtmp-hls/conf/nginx.conf deleted file mode 100644 index 938da01e2..000000000 --- a/linux/nginx/1.11.13/rtmp-hls/conf/nginx.conf +++ /dev/null @@ -1,134 +0,0 @@ -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/nginx/1.11.13/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.11.13/rtmp-hls/conf/nginx_no-ffmpeg.conf deleted file mode 100644 index 99644e14f..000000000 --- a/linux/nginx/1.11.13/rtmp-hls/conf/nginx_no-ffmpeg.conf +++ /dev/null @@ -1,118 +0,0 @@ -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/nginx/1.11.13/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.11.13/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf deleted file mode 100644 index 780a1d1ff..000000000 --- a/linux/nginx/1.11.13/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf +++ /dev/null @@ -1,16 +0,0 @@ -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/nginx/1.11.13/rtmp-hls/docker-compose.yml b/linux/nginx/1.11.13/rtmp-hls/docker-compose.yml deleted file mode 100644 index 3c46aedbd..000000000 --- a/linux/nginx/1.11.13/rtmp-hls/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.11.13/rtmp-hls/players/dash.html b/linux/nginx/1.11.13/rtmp-hls/players/dash.html deleted file mode 100644 index 12b8df786..000000000 --- a/linux/nginx/1.11.13/rtmp-hls/players/dash.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - DASH Live Streaming - - - - -

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

- - -

HLS Player

- - - - - diff --git a/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.buster.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nginx/1.11.13/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/1.11.13/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.sid.list deleted file mode 100644 index 677a95436..000000000 --- a/linux/nginx/1.11.13/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/1.11.13/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.11.13/rtmp-hls/sources.list.d/sources.stretch.list deleted file mode 100644 index ff15154c3..000000000 --- a/linux/nginx/1.11.13/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/nginx/1.12.2/main/.env b/linux/nginx/1.12.2/main/.env deleted file mode 100644 index adf7ed3e1..000000000 --- a/linux/nginx/1.12.2/main/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.12.2 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.12.2.tar.gz diff --git a/linux/nginx/1.12.2/main/Dockerfile b/linux/nginx/1.12.2/main/Dockerfile deleted file mode 100644 index aef90bcb1..000000000 --- a/linux/nginx/1.12.2/main/Dockerfile +++ /dev/null @@ -1,235 +0,0 @@ -################################################################## -# 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 && \ - ./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 && \ - 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ - 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/1.12.2/main/Makefile b/linux/nginx/1.12.2/main/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.12.2/main/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.12.2/main/README.md b/linux/nginx/1.12.2/main/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.12.2/main/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.12.2/main/docker-compose.yml b/linux/nginx/1.12.2/main/docker-compose.yml deleted file mode 100644 index 4d5d761fb..000000000 --- a/linux/nginx/1.12.2/main/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.12.2/main/pre/ip2location-description-pak b/linux/nginx/1.12.2/main/pre/ip2location-description-pak deleted file mode 100644 index e93eb7783..000000000 --- a/linux/nginx/1.12.2/main/pre/ip2location-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.12.2/main/pre/luajit2-description-pak b/linux/nginx/1.12.2/main/pre/luajit2-description-pak deleted file mode 100644 index 4305e8e88..000000000 --- a/linux/nginx/1.12.2/main/pre/luajit2-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.12.2/main/pre/nginx-description-pak b/linux/nginx/1.12.2/main/pre/nginx-description-pak deleted file mode 100644 index b6c186ed8..000000000 --- a/linux/nginx/1.12.2/main/pre/nginx-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/nginx/1.12.2/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.12.2/main/pre/ngninx.pre.tar.gz deleted file mode 100644 index bf9c2735172faf460d34cb157f13291f42cdef88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9573 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 ${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/1.12.2/php/Makefile b/linux/nginx/1.12.2/php/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.12.2/php/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.12.2/php/README.md b/linux/nginx/1.12.2/php/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.12.2/php/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.12.2/php/docker-compose.yml b/linux/nginx/1.12.2/php/docker-compose.yml deleted file mode 100644 index 0968ca6c1..000000000 --- a/linux/nginx/1.12.2/php/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/nginx/1.12.2/rtmp-hls/.env b/linux/nginx/1.12.2/rtmp-hls/.env deleted file mode 100644 index adf7ed3e1..000000000 --- a/linux/nginx/1.12.2/rtmp-hls/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.12.2 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.12.2.tar.gz diff --git a/linux/nginx/1.12.2/rtmp-hls/Dockerfile b/linux/nginx/1.12.2/rtmp-hls/Dockerfile deleted file mode 100644 index d7d9b5901..000000000 --- a/linux/nginx/1.12.2/rtmp-hls/Dockerfile +++ /dev/null @@ -1,127 +0,0 @@ -################################################################## -# 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/nginx/1.12.2/rtmp-hls/Makefile b/linux/nginx/1.12.2/rtmp-hls/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.12.2/rtmp-hls/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.12.2/rtmp-hls/README.md b/linux/nginx/1.12.2/rtmp-hls/README.md deleted file mode 100644 index d5a0ec5cc..000000000 --- a/linux/nginx/1.12.2/rtmp-hls/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# 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/nginx/1.12.2/rtmp-hls/conf/nginx.conf b/linux/nginx/1.12.2/rtmp-hls/conf/nginx.conf deleted file mode 100644 index 938da01e2..000000000 --- a/linux/nginx/1.12.2/rtmp-hls/conf/nginx.conf +++ /dev/null @@ -1,134 +0,0 @@ -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/nginx/1.12.2/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.12.2/rtmp-hls/conf/nginx_no-ffmpeg.conf deleted file mode 100644 index 99644e14f..000000000 --- a/linux/nginx/1.12.2/rtmp-hls/conf/nginx_no-ffmpeg.conf +++ /dev/null @@ -1,118 +0,0 @@ -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/nginx/1.12.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.12.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf deleted file mode 100644 index 780a1d1ff..000000000 --- a/linux/nginx/1.12.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf +++ /dev/null @@ -1,16 +0,0 @@ -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/nginx/1.12.2/rtmp-hls/docker-compose.yml b/linux/nginx/1.12.2/rtmp-hls/docker-compose.yml deleted file mode 100644 index 3c46aedbd..000000000 --- a/linux/nginx/1.12.2/rtmp-hls/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.12.2/rtmp-hls/players/dash.html b/linux/nginx/1.12.2/rtmp-hls/players/dash.html deleted file mode 100644 index 12b8df786..000000000 --- a/linux/nginx/1.12.2/rtmp-hls/players/dash.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - DASH Live Streaming - - - - -

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

- - -

HLS Player

- - - - - diff --git a/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.buster.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nginx/1.12.2/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/1.12.2/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.sid.list deleted file mode 100644 index 677a95436..000000000 --- a/linux/nginx/1.12.2/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/1.12.2/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.12.2/rtmp-hls/sources.list.d/sources.stretch.list deleted file mode 100644 index ff15154c3..000000000 --- a/linux/nginx/1.12.2/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/nginx/1.13.12/main/.env b/linux/nginx/1.13.12/main/.env deleted file mode 100644 index 5c9842833..000000000 --- a/linux/nginx/1.13.12/main/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.13.12 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.13.12.tar.gz diff --git a/linux/nginx/1.13.12/main/Dockerfile b/linux/nginx/1.13.12/main/Dockerfile deleted file mode 100644 index aef90bcb1..000000000 --- a/linux/nginx/1.13.12/main/Dockerfile +++ /dev/null @@ -1,235 +0,0 @@ -################################################################## -# 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 && \ - ./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 && \ - 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ - 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/1.13.12/main/Makefile b/linux/nginx/1.13.12/main/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.13.12/main/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.13.12/main/README.md b/linux/nginx/1.13.12/main/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.13.12/main/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.13.12/main/docker-compose.yml b/linux/nginx/1.13.12/main/docker-compose.yml deleted file mode 100644 index 4d5d761fb..000000000 --- a/linux/nginx/1.13.12/main/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.13.12/main/pre/ip2location-description-pak b/linux/nginx/1.13.12/main/pre/ip2location-description-pak deleted file mode 100644 index e93eb7783..000000000 --- a/linux/nginx/1.13.12/main/pre/ip2location-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.13.12/main/pre/luajit2-description-pak b/linux/nginx/1.13.12/main/pre/luajit2-description-pak deleted file mode 100644 index 4305e8e88..000000000 --- a/linux/nginx/1.13.12/main/pre/luajit2-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.13.12/main/pre/nginx-description-pak b/linux/nginx/1.13.12/main/pre/nginx-description-pak deleted file mode 100644 index b6c186ed8..000000000 --- a/linux/nginx/1.13.12/main/pre/nginx-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/nginx/1.13.12/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.13.12/main/pre/ngninx.pre.tar.gz deleted file mode 100644 index bf9c2735172faf460d34cb157f13291f42cdef88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9573 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 ${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/1.13.12/php/Makefile b/linux/nginx/1.13.12/php/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.13.12/php/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.13.12/php/README.md b/linux/nginx/1.13.12/php/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.13.12/php/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.13.12/php/docker-compose.yml b/linux/nginx/1.13.12/php/docker-compose.yml deleted file mode 100644 index 0968ca6c1..000000000 --- a/linux/nginx/1.13.12/php/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/nginx/1.13.12/rtmp-hls/.env b/linux/nginx/1.13.12/rtmp-hls/.env deleted file mode 100644 index 5c9842833..000000000 --- a/linux/nginx/1.13.12/rtmp-hls/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.13.12 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.13.12.tar.gz diff --git a/linux/nginx/1.13.12/rtmp-hls/Dockerfile b/linux/nginx/1.13.12/rtmp-hls/Dockerfile deleted file mode 100644 index d7d9b5901..000000000 --- a/linux/nginx/1.13.12/rtmp-hls/Dockerfile +++ /dev/null @@ -1,127 +0,0 @@ -################################################################## -# 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/nginx/1.13.12/rtmp-hls/Makefile b/linux/nginx/1.13.12/rtmp-hls/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.13.12/rtmp-hls/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.13.12/rtmp-hls/README.md b/linux/nginx/1.13.12/rtmp-hls/README.md deleted file mode 100644 index d5a0ec5cc..000000000 --- a/linux/nginx/1.13.12/rtmp-hls/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# 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/nginx/1.13.12/rtmp-hls/conf/nginx.conf b/linux/nginx/1.13.12/rtmp-hls/conf/nginx.conf deleted file mode 100644 index 938da01e2..000000000 --- a/linux/nginx/1.13.12/rtmp-hls/conf/nginx.conf +++ /dev/null @@ -1,134 +0,0 @@ -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/nginx/1.13.12/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.13.12/rtmp-hls/conf/nginx_no-ffmpeg.conf deleted file mode 100644 index 99644e14f..000000000 --- a/linux/nginx/1.13.12/rtmp-hls/conf/nginx_no-ffmpeg.conf +++ /dev/null @@ -1,118 +0,0 @@ -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/nginx/1.13.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.13.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf deleted file mode 100644 index 780a1d1ff..000000000 --- a/linux/nginx/1.13.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf +++ /dev/null @@ -1,16 +0,0 @@ -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/nginx/1.13.12/rtmp-hls/docker-compose.yml b/linux/nginx/1.13.12/rtmp-hls/docker-compose.yml deleted file mode 100644 index 3c46aedbd..000000000 --- a/linux/nginx/1.13.12/rtmp-hls/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.13.12/rtmp-hls/players/dash.html b/linux/nginx/1.13.12/rtmp-hls/players/dash.html deleted file mode 100644 index 12b8df786..000000000 --- a/linux/nginx/1.13.12/rtmp-hls/players/dash.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - DASH Live Streaming - - - - -

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

- - -

HLS Player

- - - - - diff --git a/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.buster.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nginx/1.13.12/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/1.13.12/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.sid.list deleted file mode 100644 index 677a95436..000000000 --- a/linux/nginx/1.13.12/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/1.13.12/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.13.12/rtmp-hls/sources.list.d/sources.stretch.list deleted file mode 100644 index ff15154c3..000000000 --- a/linux/nginx/1.13.12/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/nginx/1.9.15/main/.env b/linux/nginx/1.9.15/main/.env deleted file mode 100644 index cc88747df..000000000 --- a/linux/nginx/1.9.15/main/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.9.15 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.9.15.tar.gz diff --git a/linux/nginx/1.9.15/main/Dockerfile b/linux/nginx/1.9.15/main/Dockerfile deleted file mode 100644 index aef90bcb1..000000000 --- a/linux/nginx/1.9.15/main/Dockerfile +++ /dev/null @@ -1,235 +0,0 @@ -################################################################## -# 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 && \ - ./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 && \ - 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ - 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/1.9.15/main/Makefile b/linux/nginx/1.9.15/main/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.9.15/main/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.9.15/main/README.md b/linux/nginx/1.9.15/main/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.9.15/main/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.9.15/main/docker-compose.yml b/linux/nginx/1.9.15/main/docker-compose.yml deleted file mode 100644 index 4d5d761fb..000000000 --- a/linux/nginx/1.9.15/main/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.9.15/main/pre/ip2location-description-pak b/linux/nginx/1.9.15/main/pre/ip2location-description-pak deleted file mode 100644 index e93eb7783..000000000 --- a/linux/nginx/1.9.15/main/pre/ip2location-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of ip2location lib by EpicMorg. diff --git a/linux/nginx/1.9.15/main/pre/luajit2-description-pak b/linux/nginx/1.9.15/main/pre/luajit2-description-pak deleted file mode 100644 index 4305e8e88..000000000 --- a/linux/nginx/1.9.15/main/pre/luajit2-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of luajit2 for Nginx module, by EpicMorg. diff --git a/linux/nginx/1.9.15/main/pre/nginx-description-pak b/linux/nginx/1.9.15/main/pre/nginx-description-pak deleted file mode 100644 index b6c186ed8..000000000 --- a/linux/nginx/1.9.15/main/pre/nginx-description-pak +++ /dev/null @@ -1 +0,0 @@ -Custom build of Nginx with some modules by EpicMorg. \ No newline at end of file diff --git a/linux/nginx/1.9.15/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.9.15/main/pre/ngninx.pre.tar.gz deleted file mode 100644 index bf9c2735172faf460d34cb157f13291f42cdef88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9573 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 ${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/1.9.15/php/Makefile b/linux/nginx/1.9.15/php/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.9.15/php/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.9.15/php/README.md b/linux/nginx/1.9.15/php/README.md deleted file mode 100644 index 034784bc0..000000000 --- a/linux/nginx/1.9.15/php/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# 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/nginx/1.9.15/php/docker-compose.yml b/linux/nginx/1.9.15/php/docker-compose.yml deleted file mode 100644 index 0968ca6c1..000000000 --- a/linux/nginx/1.9.15/php/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/nginx/1.9.15/rtmp-hls/.env b/linux/nginx/1.9.15/rtmp-hls/.env deleted file mode 100644 index cc88747df..000000000 --- a/linux/nginx/1.9.15/rtmp-hls/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.9.15 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.9.15.tar.gz diff --git a/linux/nginx/1.9.15/rtmp-hls/Dockerfile b/linux/nginx/1.9.15/rtmp-hls/Dockerfile deleted file mode 100644 index d7d9b5901..000000000 --- a/linux/nginx/1.9.15/rtmp-hls/Dockerfile +++ /dev/null @@ -1,127 +0,0 @@ -################################################################## -# 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/nginx/1.9.15/rtmp-hls/Makefile b/linux/nginx/1.9.15/rtmp-hls/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/nginx/1.9.15/rtmp-hls/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/nginx/1.9.15/rtmp-hls/README.md b/linux/nginx/1.9.15/rtmp-hls/README.md deleted file mode 100644 index d5a0ec5cc..000000000 --- a/linux/nginx/1.9.15/rtmp-hls/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# 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/nginx/1.9.15/rtmp-hls/conf/nginx.conf b/linux/nginx/1.9.15/rtmp-hls/conf/nginx.conf deleted file mode 100644 index 938da01e2..000000000 --- a/linux/nginx/1.9.15/rtmp-hls/conf/nginx.conf +++ /dev/null @@ -1,134 +0,0 @@ -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/nginx/1.9.15/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.9.15/rtmp-hls/conf/nginx_no-ffmpeg.conf deleted file mode 100644 index 99644e14f..000000000 --- a/linux/nginx/1.9.15/rtmp-hls/conf/nginx_no-ffmpeg.conf +++ /dev/null @@ -1,118 +0,0 @@ -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/nginx/1.9.15/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.9.15/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf deleted file mode 100644 index 780a1d1ff..000000000 --- a/linux/nginx/1.9.15/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf +++ /dev/null @@ -1,16 +0,0 @@ -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/nginx/1.9.15/rtmp-hls/docker-compose.yml b/linux/nginx/1.9.15/rtmp-hls/docker-compose.yml deleted file mode 100644 index 3c46aedbd..000000000 --- a/linux/nginx/1.9.15/rtmp-hls/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -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/1.9.15/rtmp-hls/players/dash.html b/linux/nginx/1.9.15/rtmp-hls/players/dash.html deleted file mode 100644 index 12b8df786..000000000 --- a/linux/nginx/1.9.15/rtmp-hls/players/dash.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - DASH Live Streaming - - - - -

DASH Player

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

HLS Player

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

HLS Player (using hls.js)

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

RTMP Player

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

RTMP Player

- - -

HLS Player

- - - - - diff --git a/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.buster.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nginx/1.9.15/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/1.9.15/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.sid.list deleted file mode 100644 index 677a95436..000000000 --- a/linux/nginx/1.9.15/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/1.9.15/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.9.15/rtmp-hls/sources.list.d/sources.stretch.list deleted file mode 100644 index ff15154c3..000000000 --- a/linux/nginx/1.9.15/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 From 1adaf4d774674289d10ba02f5510fab904b67954 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 16 Jun 2021 01:15:10 +0300 Subject: [PATCH 070/144] templates moved --- bin/dotnet/README.md | 14 ++++++++++++++ .../atlassian}/confluence/templates/5/Dockerfile | 0 .../atlassian}/confluence/templates/5/Makefile | 0 .../confluence/templates/5/docker-compose.yml | 0 .../confluence/templates/5/entrypoint.sh | 0 .../atlassian}/confluence/templates/6/Dockerfile | 0 .../atlassian}/confluence/templates/6/Makefile | 0 .../confluence/templates/6/docker-compose.yml | 0 .../confluence/templates/6/entrypoint.sh | 0 .../atlassian}/crucible/templates/1/Dockerfile | 0 .../atlassian}/crucible/templates/1/Makefile | 0 .../crucible/templates/1/docker-compose.yml | 0 .../atlassian}/crucible/templates/1/entrypoint.sh | 0 .../fisheye-crucible/templates/2/Dockerfile | 0 .../fisheye-crucible/templates/2/Makefile | 0 .../templates/2/docker-compose.yml | 0 .../fisheye-crucible/templates/2/entrypoint.sh | 0 .../fisheye-crucible/templates/3/Dockerfile | 0 .../fisheye-crucible/templates/3/Makefile | 0 .../templates/3/docker-compose.yml | 0 .../fisheye-crucible/templates/3/entrypoint.sh | 0 .../fisheye-crucible/templates/4/Dockerfile | 0 .../fisheye-crucible/templates/4/Makefile | 0 .../templates/4/docker-compose.yml | 0 .../fisheye-crucible/templates/4/entrypoint.sh | 0 .../atlassian}/fisheye/templates/1/Dockerfile | 0 .../atlassian}/fisheye/templates/1/Makefile | 0 .../fisheye/templates/1/docker-compose.yml | 0 .../atlassian}/fisheye/templates/1/entrypoint.sh | 0 .../atlassian}/jira/templates/5/Dockerfile | 0 .../atlassian}/jira/templates/5/Makefile | 0 .../atlassian}/jira/templates/5/docker-compose.yml | 0 .../atlassian}/jira/templates/5/entrypoint.sh | 0 .../atlassian}/jira/templates/6/Dockerfile | 0 .../atlassian}/jira/templates/6/Makefile | 0 .../atlassian}/jira/templates/6/docker-compose.yml | 0 .../atlassian}/jira/templates/6/entrypoint.sh | 0 .../atlassian}/jira/templates/7/Dockerfile | 0 .../atlassian}/jira/templates/7/Makefile | 0 .../atlassian}/jira/templates/7/docker-compose.yml | 0 .../atlassian}/jira/templates/7/entrypoint.sh | 0 .../atlassian}/jira/templates/8/Dockerfile | 0 .../atlassian}/jira/templates/8/Dockerfile.jdk11 | 0 .../atlassian}/jira/templates/8/Makefile | 0 .../atlassian}/jira/templates/8/docker-compose.yml | 0 .../atlassian}/jira/templates/8/entrypoint.sh | 0 46 files changed, 14 insertions(+) create mode 100644 bin/dotnet/README.md rename {bin/dotnet/data => linux/atlassian}/confluence/templates/5/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/confluence/templates/5/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/confluence/templates/5/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/confluence/templates/5/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/confluence/templates/6/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/confluence/templates/6/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/confluence/templates/6/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/confluence/templates/6/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/crucible/templates/1/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/crucible/templates/1/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/crucible/templates/1/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/crucible/templates/1/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/2/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/2/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/2/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/2/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/3/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/3/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/3/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/3/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/4/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/4/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/4/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye-crucible/templates/4/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/fisheye/templates/1/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye/templates/1/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye/templates/1/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/fisheye/templates/1/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/jira/templates/5/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/5/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/5/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/5/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/jira/templates/6/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/6/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/6/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/6/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/jira/templates/7/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/7/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/7/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/7/entrypoint.sh (100%) mode change 100755 => 100644 rename {bin/dotnet/data => linux/atlassian}/jira/templates/8/Dockerfile (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/8/Dockerfile.jdk11 (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/8/Makefile (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/8/docker-compose.yml (100%) rename {bin/dotnet/data => linux/atlassian}/jira/templates/8/entrypoint.sh (100%) mode change 100755 => 100644 diff --git a/bin/dotnet/README.md b/bin/dotnet/README.md new file mode 100644 index 000000000..252457e61 --- /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/bin/dotnet/data/confluence/templates/5/Dockerfile b/linux/atlassian/confluence/templates/5/Dockerfile similarity index 100% rename from bin/dotnet/data/confluence/templates/5/Dockerfile rename to linux/atlassian/confluence/templates/5/Dockerfile diff --git a/bin/dotnet/data/confluence/templates/5/Makefile b/linux/atlassian/confluence/templates/5/Makefile similarity index 100% rename from bin/dotnet/data/confluence/templates/5/Makefile rename to linux/atlassian/confluence/templates/5/Makefile diff --git a/bin/dotnet/data/confluence/templates/5/docker-compose.yml b/linux/atlassian/confluence/templates/5/docker-compose.yml similarity index 100% rename from bin/dotnet/data/confluence/templates/5/docker-compose.yml rename to linux/atlassian/confluence/templates/5/docker-compose.yml diff --git a/bin/dotnet/data/confluence/templates/5/entrypoint.sh b/linux/atlassian/confluence/templates/5/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/confluence/templates/5/entrypoint.sh rename to linux/atlassian/confluence/templates/5/entrypoint.sh diff --git a/bin/dotnet/data/confluence/templates/6/Dockerfile b/linux/atlassian/confluence/templates/6/Dockerfile similarity index 100% rename from bin/dotnet/data/confluence/templates/6/Dockerfile rename to linux/atlassian/confluence/templates/6/Dockerfile diff --git a/bin/dotnet/data/confluence/templates/6/Makefile b/linux/atlassian/confluence/templates/6/Makefile similarity index 100% rename from bin/dotnet/data/confluence/templates/6/Makefile rename to linux/atlassian/confluence/templates/6/Makefile diff --git a/bin/dotnet/data/confluence/templates/6/docker-compose.yml b/linux/atlassian/confluence/templates/6/docker-compose.yml similarity index 100% rename from bin/dotnet/data/confluence/templates/6/docker-compose.yml rename to linux/atlassian/confluence/templates/6/docker-compose.yml diff --git a/bin/dotnet/data/confluence/templates/6/entrypoint.sh b/linux/atlassian/confluence/templates/6/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/confluence/templates/6/entrypoint.sh rename to linux/atlassian/confluence/templates/6/entrypoint.sh diff --git a/bin/dotnet/data/crucible/templates/1/Dockerfile b/linux/atlassian/crucible/templates/1/Dockerfile similarity index 100% rename from bin/dotnet/data/crucible/templates/1/Dockerfile rename to linux/atlassian/crucible/templates/1/Dockerfile diff --git a/bin/dotnet/data/crucible/templates/1/Makefile b/linux/atlassian/crucible/templates/1/Makefile similarity index 100% rename from bin/dotnet/data/crucible/templates/1/Makefile rename to linux/atlassian/crucible/templates/1/Makefile diff --git a/bin/dotnet/data/crucible/templates/1/docker-compose.yml b/linux/atlassian/crucible/templates/1/docker-compose.yml similarity index 100% rename from bin/dotnet/data/crucible/templates/1/docker-compose.yml rename to linux/atlassian/crucible/templates/1/docker-compose.yml diff --git a/bin/dotnet/data/crucible/templates/1/entrypoint.sh b/linux/atlassian/crucible/templates/1/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/crucible/templates/1/entrypoint.sh rename to linux/atlassian/crucible/templates/1/entrypoint.sh diff --git a/bin/dotnet/data/fisheye-crucible/templates/2/Dockerfile b/linux/atlassian/fisheye-crucible/templates/2/Dockerfile similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/2/Dockerfile rename to linux/atlassian/fisheye-crucible/templates/2/Dockerfile diff --git a/bin/dotnet/data/fisheye-crucible/templates/2/Makefile b/linux/atlassian/fisheye-crucible/templates/2/Makefile similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/2/Makefile rename to linux/atlassian/fisheye-crucible/templates/2/Makefile diff --git a/bin/dotnet/data/fisheye-crucible/templates/2/docker-compose.yml b/linux/atlassian/fisheye-crucible/templates/2/docker-compose.yml similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/2/docker-compose.yml rename to linux/atlassian/fisheye-crucible/templates/2/docker-compose.yml diff --git a/bin/dotnet/data/fisheye-crucible/templates/2/entrypoint.sh b/linux/atlassian/fisheye-crucible/templates/2/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/2/entrypoint.sh rename to linux/atlassian/fisheye-crucible/templates/2/entrypoint.sh diff --git a/bin/dotnet/data/fisheye-crucible/templates/3/Dockerfile b/linux/atlassian/fisheye-crucible/templates/3/Dockerfile similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/3/Dockerfile rename to linux/atlassian/fisheye-crucible/templates/3/Dockerfile diff --git a/bin/dotnet/data/fisheye-crucible/templates/3/Makefile b/linux/atlassian/fisheye-crucible/templates/3/Makefile similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/3/Makefile rename to linux/atlassian/fisheye-crucible/templates/3/Makefile diff --git a/bin/dotnet/data/fisheye-crucible/templates/3/docker-compose.yml b/linux/atlassian/fisheye-crucible/templates/3/docker-compose.yml similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/3/docker-compose.yml rename to linux/atlassian/fisheye-crucible/templates/3/docker-compose.yml diff --git a/bin/dotnet/data/fisheye-crucible/templates/3/entrypoint.sh b/linux/atlassian/fisheye-crucible/templates/3/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/3/entrypoint.sh rename to linux/atlassian/fisheye-crucible/templates/3/entrypoint.sh diff --git a/bin/dotnet/data/fisheye-crucible/templates/4/Dockerfile b/linux/atlassian/fisheye-crucible/templates/4/Dockerfile similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/4/Dockerfile rename to linux/atlassian/fisheye-crucible/templates/4/Dockerfile diff --git a/bin/dotnet/data/fisheye-crucible/templates/4/Makefile b/linux/atlassian/fisheye-crucible/templates/4/Makefile similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/4/Makefile rename to linux/atlassian/fisheye-crucible/templates/4/Makefile diff --git a/bin/dotnet/data/fisheye-crucible/templates/4/docker-compose.yml b/linux/atlassian/fisheye-crucible/templates/4/docker-compose.yml similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/4/docker-compose.yml rename to linux/atlassian/fisheye-crucible/templates/4/docker-compose.yml diff --git a/bin/dotnet/data/fisheye-crucible/templates/4/entrypoint.sh b/linux/atlassian/fisheye-crucible/templates/4/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/fisheye-crucible/templates/4/entrypoint.sh rename to linux/atlassian/fisheye-crucible/templates/4/entrypoint.sh diff --git a/bin/dotnet/data/fisheye/templates/1/Dockerfile b/linux/atlassian/fisheye/templates/1/Dockerfile similarity index 100% rename from bin/dotnet/data/fisheye/templates/1/Dockerfile rename to linux/atlassian/fisheye/templates/1/Dockerfile diff --git a/bin/dotnet/data/fisheye/templates/1/Makefile b/linux/atlassian/fisheye/templates/1/Makefile similarity index 100% rename from bin/dotnet/data/fisheye/templates/1/Makefile rename to linux/atlassian/fisheye/templates/1/Makefile diff --git a/bin/dotnet/data/fisheye/templates/1/docker-compose.yml b/linux/atlassian/fisheye/templates/1/docker-compose.yml similarity index 100% rename from bin/dotnet/data/fisheye/templates/1/docker-compose.yml rename to linux/atlassian/fisheye/templates/1/docker-compose.yml diff --git a/bin/dotnet/data/fisheye/templates/1/entrypoint.sh b/linux/atlassian/fisheye/templates/1/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/fisheye/templates/1/entrypoint.sh rename to linux/atlassian/fisheye/templates/1/entrypoint.sh diff --git a/bin/dotnet/data/jira/templates/5/Dockerfile b/linux/atlassian/jira/templates/5/Dockerfile similarity index 100% rename from bin/dotnet/data/jira/templates/5/Dockerfile rename to linux/atlassian/jira/templates/5/Dockerfile diff --git a/bin/dotnet/data/jira/templates/5/Makefile b/linux/atlassian/jira/templates/5/Makefile similarity index 100% rename from bin/dotnet/data/jira/templates/5/Makefile rename to linux/atlassian/jira/templates/5/Makefile diff --git a/bin/dotnet/data/jira/templates/5/docker-compose.yml b/linux/atlassian/jira/templates/5/docker-compose.yml similarity index 100% rename from bin/dotnet/data/jira/templates/5/docker-compose.yml rename to linux/atlassian/jira/templates/5/docker-compose.yml diff --git a/bin/dotnet/data/jira/templates/5/entrypoint.sh b/linux/atlassian/jira/templates/5/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/jira/templates/5/entrypoint.sh rename to linux/atlassian/jira/templates/5/entrypoint.sh diff --git a/bin/dotnet/data/jira/templates/6/Dockerfile b/linux/atlassian/jira/templates/6/Dockerfile similarity index 100% rename from bin/dotnet/data/jira/templates/6/Dockerfile rename to linux/atlassian/jira/templates/6/Dockerfile diff --git a/bin/dotnet/data/jira/templates/6/Makefile b/linux/atlassian/jira/templates/6/Makefile similarity index 100% rename from bin/dotnet/data/jira/templates/6/Makefile rename to linux/atlassian/jira/templates/6/Makefile diff --git a/bin/dotnet/data/jira/templates/6/docker-compose.yml b/linux/atlassian/jira/templates/6/docker-compose.yml similarity index 100% rename from bin/dotnet/data/jira/templates/6/docker-compose.yml rename to linux/atlassian/jira/templates/6/docker-compose.yml diff --git a/bin/dotnet/data/jira/templates/6/entrypoint.sh b/linux/atlassian/jira/templates/6/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/jira/templates/6/entrypoint.sh rename to linux/atlassian/jira/templates/6/entrypoint.sh diff --git a/bin/dotnet/data/jira/templates/7/Dockerfile b/linux/atlassian/jira/templates/7/Dockerfile similarity index 100% rename from bin/dotnet/data/jira/templates/7/Dockerfile rename to linux/atlassian/jira/templates/7/Dockerfile diff --git a/bin/dotnet/data/jira/templates/7/Makefile b/linux/atlassian/jira/templates/7/Makefile similarity index 100% rename from bin/dotnet/data/jira/templates/7/Makefile rename to linux/atlassian/jira/templates/7/Makefile diff --git a/bin/dotnet/data/jira/templates/7/docker-compose.yml b/linux/atlassian/jira/templates/7/docker-compose.yml similarity index 100% rename from bin/dotnet/data/jira/templates/7/docker-compose.yml rename to linux/atlassian/jira/templates/7/docker-compose.yml diff --git a/bin/dotnet/data/jira/templates/7/entrypoint.sh b/linux/atlassian/jira/templates/7/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/jira/templates/7/entrypoint.sh rename to linux/atlassian/jira/templates/7/entrypoint.sh diff --git a/bin/dotnet/data/jira/templates/8/Dockerfile b/linux/atlassian/jira/templates/8/Dockerfile similarity index 100% rename from bin/dotnet/data/jira/templates/8/Dockerfile rename to linux/atlassian/jira/templates/8/Dockerfile diff --git a/bin/dotnet/data/jira/templates/8/Dockerfile.jdk11 b/linux/atlassian/jira/templates/8/Dockerfile.jdk11 similarity index 100% rename from bin/dotnet/data/jira/templates/8/Dockerfile.jdk11 rename to linux/atlassian/jira/templates/8/Dockerfile.jdk11 diff --git a/bin/dotnet/data/jira/templates/8/Makefile b/linux/atlassian/jira/templates/8/Makefile similarity index 100% rename from bin/dotnet/data/jira/templates/8/Makefile rename to linux/atlassian/jira/templates/8/Makefile diff --git a/bin/dotnet/data/jira/templates/8/docker-compose.yml b/linux/atlassian/jira/templates/8/docker-compose.yml similarity index 100% rename from bin/dotnet/data/jira/templates/8/docker-compose.yml rename to linux/atlassian/jira/templates/8/docker-compose.yml diff --git a/bin/dotnet/data/jira/templates/8/entrypoint.sh b/linux/atlassian/jira/templates/8/entrypoint.sh old mode 100755 new mode 100644 similarity index 100% rename from bin/dotnet/data/jira/templates/8/entrypoint.sh rename to linux/atlassian/jira/templates/8/entrypoint.sh From ac14b2a4ee6c653af8fc0eab3e89c9fb2bfbd5a8 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 16 Jun 2021 01:16:33 +0300 Subject: [PATCH 071/144] chmod +x --- linux/atlassian/confluence/templates/5/entrypoint.sh | 0 linux/atlassian/confluence/templates/6/entrypoint.sh | 0 linux/atlassian/crucible/templates/1/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/templates/2/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/templates/3/entrypoint.sh | 0 linux/atlassian/fisheye-crucible/templates/4/entrypoint.sh | 0 linux/atlassian/fisheye/templates/1/entrypoint.sh | 0 linux/atlassian/jira/templates/5/entrypoint.sh | 0 linux/atlassian/jira/templates/6/entrypoint.sh | 0 linux/atlassian/jira/templates/7/entrypoint.sh | 0 linux/atlassian/jira/templates/8/entrypoint.sh | 0 11 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 linux/atlassian/confluence/templates/5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/confluence/templates/6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/crucible/templates/1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/templates/2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/templates/3/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye-crucible/templates/4/entrypoint.sh mode change 100644 => 100755 linux/atlassian/fisheye/templates/1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/templates/5/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/templates/6/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/templates/7/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/templates/8/entrypoint.sh diff --git a/linux/atlassian/confluence/templates/5/entrypoint.sh b/linux/atlassian/confluence/templates/5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/confluence/templates/6/entrypoint.sh b/linux/atlassian/confluence/templates/6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/crucible/templates/1/entrypoint.sh b/linux/atlassian/crucible/templates/1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/templates/2/entrypoint.sh b/linux/atlassian/fisheye-crucible/templates/2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/templates/3/entrypoint.sh b/linux/atlassian/fisheye-crucible/templates/3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye-crucible/templates/4/entrypoint.sh b/linux/atlassian/fisheye-crucible/templates/4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/fisheye/templates/1/entrypoint.sh b/linux/atlassian/fisheye/templates/1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/templates/5/entrypoint.sh b/linux/atlassian/jira/templates/5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/templates/6/entrypoint.sh b/linux/atlassian/jira/templates/6/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/templates/7/entrypoint.sh b/linux/atlassian/jira/templates/7/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/templates/8/entrypoint.sh b/linux/atlassian/jira/templates/8/entrypoint.sh old mode 100644 new mode 100755 From 9d24db431335918fbf47d9a78258f0064c2a5deb Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 16 Jun 2021 01:18:43 +0300 Subject: [PATCH 072/144] Update README.md --- bin/dotnet/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/dotnet/README.md b/bin/dotnet/README.md index 252457e61..1c5f134a0 100644 --- a/bin/dotnet/README.md +++ b/bin/dotnet/README.md @@ -10,5 +10,5 @@ Epicmorg.DockerGenerator.exe ## 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 +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 From 9012f6a3eca7c1097602ea648cbcf969e8c41055 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 16 Jun 2021 01:20:22 +0300 Subject: [PATCH 073/144] jira8 updates --- linux/atlassian/jira/8/8.13.8/.env | 3 + linux/atlassian/jira/8/8.13.8/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.13.8/Dockerfile.jdk11 | 49 ++++++++++ linux/atlassian/jira/8/8.13.8/Makefile | 5 ++ .../jira/8/8.13.8/docker-compose.yml | 17 ++++ linux/atlassian/jira/8/8.13.8/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.16.2/.env | 3 + linux/atlassian/jira/8/8.16.2/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.16.2/Dockerfile.jdk11 | 49 ++++++++++ linux/atlassian/jira/8/8.16.2/Makefile | 5 ++ .../jira/8/8.16.2/docker-compose.yml | 17 ++++ linux/atlassian/jira/8/8.16.2/entrypoint.sh | 89 +++++++++++++++++++ linux/atlassian/jira/8/8.5.16/.env | 3 + linux/atlassian/jira/8/8.5.16/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.5.16/Dockerfile.jdk11 | 49 ++++++++++ linux/atlassian/jira/8/8.5.16/Makefile | 5 ++ .../jira/8/8.5.16/docker-compose.yml | 17 ++++ linux/atlassian/jira/8/8.5.16/entrypoint.sh | 89 +++++++++++++++++++ 18 files changed, 636 insertions(+) create mode 100644 linux/atlassian/jira/8/8.13.8/.env create mode 100644 linux/atlassian/jira/8/8.13.8/Dockerfile create mode 100644 linux/atlassian/jira/8/8.13.8/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.13.8/Makefile create mode 100644 linux/atlassian/jira/8/8.13.8/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.13.8/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.16.2/.env create mode 100644 linux/atlassian/jira/8/8.16.2/Dockerfile create mode 100644 linux/atlassian/jira/8/8.16.2/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.16.2/Makefile create mode 100644 linux/atlassian/jira/8/8.16.2/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.16.2/entrypoint.sh create mode 100644 linux/atlassian/jira/8/8.5.16/.env create mode 100644 linux/atlassian/jira/8/8.5.16/Dockerfile create mode 100644 linux/atlassian/jira/8/8.5.16/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.5.16/Makefile create mode 100644 linux/atlassian/jira/8/8.5.16/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.5.16/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.8/.env b/linux/atlassian/jira/8/8.13.8/.env new file mode 100644 index 000000000..39707adc5 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.8/Dockerfile b/linux/atlassian/jira/8/8.13.8/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.8/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.13.8/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.13.8/Makefile b/linux/atlassian/jira/8/8.13.8/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.13.8/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.13.8/docker-compose.yml b/linux/atlassian/jira/8/8.13.8/docker-compose.yml new file mode 100644 index 000000000..0f7a373af --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.13.8/entrypoint.sh b/linux/atlassian/jira/8/8.13.8/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.2/.env b/linux/atlassian/jira/8/8.16.2/.env new file mode 100644 index 000000000..4d36171e3 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.2/Dockerfile b/linux/atlassian/jira/8/8.16.2/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.2/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.16.2/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.16.2/Makefile b/linux/atlassian/jira/8/8.16.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.16.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.16.2/docker-compose.yml b/linux/atlassian/jira/8/8.16.2/docker-compose.yml new file mode 100644 index 000000000..0f7a373af --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.16.2/entrypoint.sh b/linux/atlassian/jira/8/8.16.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.16/.env b/linux/atlassian/jira/8/8.5.16/.env new file mode 100644 index 000000000..c56758baa --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.16/Dockerfile b/linux/atlassian/jira/8/8.5.16/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.16/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.5.16/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.5.16/Makefile b/linux/atlassian/jira/8/8.5.16/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.5.16/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.5.16/docker-compose.yml b/linux/atlassian/jira/8/8.5.16/docker-compose.yml new file mode 100644 index 000000000..0f7a373af --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.5.16/entrypoint.sh b/linux/atlassian/jira/8/8.5.16/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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 From deb622042206a726f2ab464c11eb92c21b55fe03 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 16 Jun 2021 01:20:56 +0300 Subject: [PATCH 074/144] jira8 updates --- linux/atlassian/jira/8/8.17.1/.env | 3 + linux/atlassian/jira/8/8.17.1/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.17.1/Dockerfile.jdk11 | 49 ++++++++++ linux/atlassian/jira/8/8.17.1/Makefile | 5 ++ .../jira/8/8.17.1/docker-compose.yml | 17 ++++ linux/atlassian/jira/8/8.17.1/entrypoint.sh | 89 +++++++++++++++++++ 6 files changed, 212 insertions(+) create mode 100644 linux/atlassian/jira/8/8.17.1/.env create mode 100644 linux/atlassian/jira/8/8.17.1/Dockerfile create mode 100644 linux/atlassian/jira/8/8.17.1/Dockerfile.jdk11 create mode 100644 linux/atlassian/jira/8/8.17.1/Makefile create mode 100644 linux/atlassian/jira/8/8.17.1/docker-compose.yml create mode 100644 linux/atlassian/jira/8/8.17.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.17.1/.env b/linux/atlassian/jira/8/8.17.1/.env new file mode 100644 index 000000000..0aaefcf4d --- /dev/null +++ b/linux/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/atlassian/jira/8/8.17.1/Dockerfile b/linux/atlassian/jira/8/8.17.1/Dockerfile new file mode 100644 index 000000000..eeec7c1d8 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.17.1/Dockerfile.jdk11 b/linux/atlassian/jira/8/8.17.1/Dockerfile.jdk11 new file mode 100644 index 000000000..a98a20e49 --- /dev/null +++ b/linux/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/atlassian/jira/8/8.17.1/Makefile b/linux/atlassian/jira/8/8.17.1/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/atlassian/jira/8/8.17.1/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/atlassian/jira/8/8.17.1/docker-compose.yml b/linux/atlassian/jira/8/8.17.1/docker-compose.yml new file mode 100644 index 000000000..0f7a373af --- /dev/null +++ b/linux/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} \ No newline at end of file diff --git a/linux/atlassian/jira/8/8.17.1/entrypoint.sh b/linux/atlassian/jira/8/8.17.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/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 From d1bb6d7b20402a19cff54facbd55f66f603109f9 Mon Sep 17 00:00:00 2001 From: stam Date: Wed, 16 Jun 2021 01:25:27 +0300 Subject: [PATCH 075/144] confluence6 updates --- linux/atlassian/confluence/6/6.13.21/.env | 3 ++ .../atlassian/confluence/6/6.13.21/Dockerfile | 49 +++++++++++++++++++ linux/atlassian/confluence/6/6.13.21/Makefile | 5 ++ .../confluence/6/6.13.21/docker-compose.yml | 9 ++++ .../confluence/6/6.13.21/entrypoint.sh | 39 +++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 linux/atlassian/confluence/6/6.13.21/.env create mode 100644 linux/atlassian/confluence/6/6.13.21/Dockerfile create mode 100644 linux/atlassian/confluence/6/6.13.21/Makefile create mode 100644 linux/atlassian/confluence/6/6.13.21/docker-compose.yml create mode 100644 linux/atlassian/confluence/6/6.13.21/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.21/.env b/linux/atlassian/confluence/6/6.13.21/.env new file mode 100644 index 000000000..198e7b683 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.21/Dockerfile b/linux/atlassian/confluence/6/6.13.21/Dockerfile new file mode 100644 index 000000000..f3e6e40c1 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.21/Makefile b/linux/atlassian/confluence/6/6.13.21/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/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/atlassian/confluence/6/6.13.21/docker-compose.yml b/linux/atlassian/confluence/6/6.13.21/docker-compose.yml new file mode 100644 index 000000000..3e8eba866 --- /dev/null +++ b/linux/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.13.21/entrypoint.sh b/linux/atlassian/confluence/6/6.13.21/entrypoint.sh new file mode 100644 index 000000000..250fc031a --- /dev/null +++ b/linux/atlassian/confluence/6/6.13.21/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 From d3fa701fdd6da18861f95f3ba097f2c8e38be3a1 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 16 Jun 2021 01:26:29 +0300 Subject: [PATCH 076/144] chmod +x --- linux/atlassian/confluence/6/6.13.21/entrypoint.sh | 0 linux/atlassian/jira/8/8.13.8/entrypoint.sh | 0 linux/atlassian/jira/8/8.16.2/entrypoint.sh | 0 linux/atlassian/jira/8/8.17.1/entrypoint.sh | 0 linux/atlassian/jira/8/8.5.16/entrypoint.sh | 0 5 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 linux/atlassian/confluence/6/6.13.21/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.13.8/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.16.2/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.17.1/entrypoint.sh mode change 100644 => 100755 linux/atlassian/jira/8/8.5.16/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.21/entrypoint.sh b/linux/atlassian/confluence/6/6.13.21/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.13.8/entrypoint.sh b/linux/atlassian/jira/8/8.13.8/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.16.2/entrypoint.sh b/linux/atlassian/jira/8/8.16.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.17.1/entrypoint.sh b/linux/atlassian/jira/8/8.17.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/atlassian/jira/8/8.5.16/entrypoint.sh b/linux/atlassian/jira/8/8.5.16/entrypoint.sh old mode 100644 new mode 100755 From fb91efd8bb521a299a8b45b424ce74a2a8f27b77 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 16 Jun 2021 01:27:53 +0300 Subject: [PATCH 077/144] chmod +x --- linux/atlassian/jira/latest/.env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux/atlassian/jira/latest/.env b/linux/atlassian/jira/latest/.env index a127c6f7b..0aaefcf4d 100644 --- a/linux/atlassian/jira/latest/.env +++ b/linux/atlassian/jira/latest/.env @@ -1,3 +1,3 @@ -RELEASE=8.17.0 -DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.17.0.tar.gz +RELEASE=8.17.1 +DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-8.17.1.tar.gz From a57b1229f2cf129c8f9533906ca68b760617e893 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 13 Jul 2021 14:01:54 +0300 Subject: [PATCH 078/144] edge+ migrated to bullseye --- linux/epicmorg/edge/main/sources.sid.list | 7 ------- linux/epicmorg/prod/main/Dockerfile | 2 +- linux/nginx/1.21.0/main/.env | 2 -- linux/nginx/1.21.0/php/.env | 2 -- linux/nginx/1.21.0/rtmp-hls/.env | 2 -- linux/nginx/1.21.1/main/.env | 2 ++ linux/nginx/{1.21.0 => 1.21.1}/main/Dockerfile | 0 linux/nginx/{1.21.0 => 1.21.1}/main/Makefile | 0 linux/nginx/{1.21.0 => 1.21.1}/main/README.md | 0 .../{1.21.0 => 1.21.1}/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../main/pre/luajit2-description-pak | 0 .../main/pre/nginx-description-pak | 0 .../{1.21.0 => 1.21.1}/main/pre/ngninx.pre.tar.gz | Bin linux/nginx/1.21.1/php/.env | 2 ++ linux/nginx/{1.21.0 => 1.21.1}/php/Dockerfile | 0 linux/nginx/{1.21.0 => 1.21.1}/php/Makefile | 0 linux/nginx/{1.21.0 => 1.21.1}/php/README.md | 0 .../nginx/{1.21.0 => 1.21.1}/php/docker-compose.yml | 0 linux/nginx/1.21.1/rtmp-hls/.env | 2 ++ linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/Dockerfile | 0 linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/Makefile | 0 linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/README.md | 0 .../{1.21.0 => 1.21.1}/rtmp-hls/conf/nginx.conf | 0 .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf | 0 .../{1.21.0 => 1.21.1}/rtmp-hls/docker-compose.yml | 0 .../{1.21.0 => 1.21.1}/rtmp-hls/players/dash.html | 0 .../{1.21.0 => 1.21.1}/rtmp-hls/players/hls.html | 0 .../rtmp-hls/players/hls_hlsjs.html | 0 .../{1.21.0 => 1.21.1}/rtmp-hls/players/rtmp.html | 0 .../rtmp-hls/players/rtmp_hls.html | 0 .../rtmp-hls/sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../rtmp-hls/sources.list.d/sources.stretch.list | 0 linux/nginx/latest/main/.env | 2 +- linux/nginx/latest/php/.env | 2 +- linux/nginx/latest/rtmp-hls/.env | 2 +- 38 files changed, 10 insertions(+), 17 deletions(-) delete mode 100644 linux/epicmorg/edge/main/sources.sid.list delete mode 100644 linux/nginx/1.21.0/main/.env delete mode 100644 linux/nginx/1.21.0/php/.env delete mode 100644 linux/nginx/1.21.0/rtmp-hls/.env create mode 100644 linux/nginx/1.21.1/main/.env rename linux/nginx/{1.21.0 => 1.21.1}/main/Dockerfile (100%) rename linux/nginx/{1.21.0 => 1.21.1}/main/Makefile (100%) rename linux/nginx/{1.21.0 => 1.21.1}/main/README.md (100%) rename linux/nginx/{1.21.0 => 1.21.1}/main/docker-compose.yml (100%) rename linux/nginx/{1.21.0 => 1.21.1}/main/pre/ip2location-description-pak (100%) rename linux/nginx/{1.21.0 => 1.21.1}/main/pre/luajit2-description-pak (100%) rename linux/nginx/{1.21.0 => 1.21.1}/main/pre/nginx-description-pak (100%) rename linux/nginx/{1.21.0 => 1.21.1}/main/pre/ngninx.pre.tar.gz (100%) create mode 100644 linux/nginx/1.21.1/php/.env rename linux/nginx/{1.21.0 => 1.21.1}/php/Dockerfile (100%) rename linux/nginx/{1.21.0 => 1.21.1}/php/Makefile (100%) rename linux/nginx/{1.21.0 => 1.21.1}/php/README.md (100%) rename linux/nginx/{1.21.0 => 1.21.1}/php/docker-compose.yml (100%) create mode 100644 linux/nginx/1.21.1/rtmp-hls/.env rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/Dockerfile (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/Makefile (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/README.md (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/conf/nginx.conf (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/docker-compose.yml (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/players/dash.html (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/players/hls.html (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/players/rtmp.html (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/players/rtmp_hls.html (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/nginx/{1.21.0 => 1.21.1}/rtmp-hls/sources.list.d/sources.stretch.list (100%) diff --git a/linux/epicmorg/edge/main/sources.sid.list b/linux/epicmorg/edge/main/sources.sid.list deleted file mode 100644 index d3d573cdc..000000000 --- a/linux/epicmorg/edge/main/sources.sid.list +++ /dev/null @@ -1,7 +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 - -##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/epicmorg/prod/main/Dockerfile b/linux/epicmorg/prod/main/Dockerfile index 60b650f00..db8e4b4a1 100644 --- a/linux/epicmorg/prod/main/Dockerfile +++ b/linux/epicmorg/prod/main/Dockerfile @@ -15,7 +15,7 @@ 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_VERSION=r21.1 ARG P4_DOWNLOAD_URL=http://www.perforce.com/downloads/perforce/${P4_VERSION}/bin.linux26x86_64/p4 ################################################################## diff --git a/linux/nginx/1.21.0/main/.env b/linux/nginx/1.21.0/main/.env deleted file mode 100644 index fec228d1d..000000000 --- a/linux/nginx/1.21.0/main/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.21.0 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz diff --git a/linux/nginx/1.21.0/php/.env b/linux/nginx/1.21.0/php/.env deleted file mode 100644 index fec228d1d..000000000 --- a/linux/nginx/1.21.0/php/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.21.0 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz diff --git a/linux/nginx/1.21.0/rtmp-hls/.env b/linux/nginx/1.21.0/rtmp-hls/.env deleted file mode 100644 index fec228d1d..000000000 --- a/linux/nginx/1.21.0/rtmp-hls/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.21.0 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz diff --git a/linux/nginx/1.21.1/main/.env b/linux/nginx/1.21.1/main/.env new file mode 100644 index 000000000..eab5d9214 --- /dev/null +++ b/linux/nginx/1.21.1/main/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.21.1 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz diff --git a/linux/nginx/1.21.0/main/Dockerfile b/linux/nginx/1.21.1/main/Dockerfile similarity index 100% rename from linux/nginx/1.21.0/main/Dockerfile rename to linux/nginx/1.21.1/main/Dockerfile diff --git a/linux/nginx/1.21.0/main/Makefile b/linux/nginx/1.21.1/main/Makefile similarity index 100% rename from linux/nginx/1.21.0/main/Makefile rename to linux/nginx/1.21.1/main/Makefile diff --git a/linux/nginx/1.21.0/main/README.md b/linux/nginx/1.21.1/main/README.md similarity index 100% rename from linux/nginx/1.21.0/main/README.md rename to linux/nginx/1.21.1/main/README.md diff --git a/linux/nginx/1.21.0/main/docker-compose.yml b/linux/nginx/1.21.1/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.21.0/main/docker-compose.yml rename to linux/nginx/1.21.1/main/docker-compose.yml diff --git a/linux/nginx/1.21.0/main/pre/ip2location-description-pak b/linux/nginx/1.21.1/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.21.0/main/pre/ip2location-description-pak rename to linux/nginx/1.21.1/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.21.0/main/pre/luajit2-description-pak b/linux/nginx/1.21.1/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.21.0/main/pre/luajit2-description-pak rename to linux/nginx/1.21.1/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.21.0/main/pre/nginx-description-pak b/linux/nginx/1.21.1/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.21.0/main/pre/nginx-description-pak rename to linux/nginx/1.21.1/main/pre/nginx-description-pak diff --git a/linux/nginx/1.21.0/main/pre/ngninx.pre.tar.gz b/linux/nginx/1.21.1/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/1.21.0/main/pre/ngninx.pre.tar.gz rename to linux/nginx/1.21.1/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.21.1/php/.env b/linux/nginx/1.21.1/php/.env new file mode 100644 index 000000000..eab5d9214 --- /dev/null +++ b/linux/nginx/1.21.1/php/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.21.1 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz diff --git a/linux/nginx/1.21.0/php/Dockerfile b/linux/nginx/1.21.1/php/Dockerfile similarity index 100% rename from linux/nginx/1.21.0/php/Dockerfile rename to linux/nginx/1.21.1/php/Dockerfile diff --git a/linux/nginx/1.21.0/php/Makefile b/linux/nginx/1.21.1/php/Makefile similarity index 100% rename from linux/nginx/1.21.0/php/Makefile rename to linux/nginx/1.21.1/php/Makefile diff --git a/linux/nginx/1.21.0/php/README.md b/linux/nginx/1.21.1/php/README.md similarity index 100% rename from linux/nginx/1.21.0/php/README.md rename to linux/nginx/1.21.1/php/README.md diff --git a/linux/nginx/1.21.0/php/docker-compose.yml b/linux/nginx/1.21.1/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.21.0/php/docker-compose.yml rename to linux/nginx/1.21.1/php/docker-compose.yml diff --git a/linux/nginx/1.21.1/rtmp-hls/.env b/linux/nginx/1.21.1/rtmp-hls/.env new file mode 100644 index 000000000..eab5d9214 --- /dev/null +++ b/linux/nginx/1.21.1/rtmp-hls/.env @@ -0,0 +1,2 @@ +NGINX_VERSION=1.21.1 +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz diff --git a/linux/nginx/1.21.0/rtmp-hls/Dockerfile b/linux/nginx/1.21.1/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/Dockerfile rename to linux/nginx/1.21.1/rtmp-hls/Dockerfile diff --git a/linux/nginx/1.21.0/rtmp-hls/Makefile b/linux/nginx/1.21.1/rtmp-hls/Makefile similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/Makefile rename to linux/nginx/1.21.1/rtmp-hls/Makefile diff --git a/linux/nginx/1.21.0/rtmp-hls/README.md b/linux/nginx/1.21.1/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/README.md rename to linux/nginx/1.21.1/rtmp-hls/README.md diff --git a/linux/nginx/1.21.0/rtmp-hls/conf/nginx.conf b/linux/nginx/1.21.1/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/conf/nginx.conf rename to linux/nginx/1.21.1/rtmp-hls/conf/nginx.conf diff --git a/linux/nginx/1.21.0/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/nginx/1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/nginx/1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/nginx/1.21.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/nginx/1.21.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/nginx/1.21.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.21.0/rtmp-hls/docker-compose.yml b/linux/nginx/1.21.1/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/docker-compose.yml rename to linux/nginx/1.21.1/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.21.0/rtmp-hls/players/dash.html b/linux/nginx/1.21.1/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/players/dash.html rename to linux/nginx/1.21.1/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.21.0/rtmp-hls/players/hls.html b/linux/nginx/1.21.1/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/players/hls.html rename to linux/nginx/1.21.1/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.21.0/rtmp-hls/players/hls_hlsjs.html b/linux/nginx/1.21.1/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/players/hls_hlsjs.html rename to linux/nginx/1.21.1/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/1.21.0/rtmp-hls/players/rtmp.html b/linux/nginx/1.21.1/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/players/rtmp.html rename to linux/nginx/1.21.1/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.21.0/rtmp-hls/players/rtmp_hls.html b/linux/nginx/1.21.1/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/players/rtmp_hls.html rename to linux/nginx/1.21.1/rtmp-hls/players/rtmp_hls.html diff --git a/linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.buster.list b/linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.buster.list similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.buster.list rename to linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.sid.list b/linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.sid.list similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.sid.list rename to linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.stretch.list b/linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.stretch.list similarity index 100% rename from linux/nginx/1.21.0/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/latest/main/.env b/linux/nginx/latest/main/.env index 87426d11a..a012fc251 100644 --- a/linux/nginx/latest/main/.env +++ b/linux/nginx/latest/main/.env @@ -1,2 +1,2 @@ NGINX_VERSION=latest -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz diff --git a/linux/nginx/latest/php/.env b/linux/nginx/latest/php/.env index 87426d11a..a012fc251 100644 --- a/linux/nginx/latest/php/.env +++ b/linux/nginx/latest/php/.env @@ -1,2 +1,2 @@ NGINX_VERSION=latest -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz diff --git a/linux/nginx/latest/rtmp-hls/.env b/linux/nginx/latest/rtmp-hls/.env index 87426d11a..a012fc251 100644 --- a/linux/nginx/latest/rtmp-hls/.env +++ b/linux/nginx/latest/rtmp-hls/.env @@ -1,2 +1,2 @@ NGINX_VERSION=latest -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.0.tar.gz +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz From 567830ed0b1315a35128a3ae048f4da75b6d814f Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 13 Jul 2021 14:03:09 +0300 Subject: [PATCH 079/144] edge+ migrated to bullseye; nginx updated --- linux/epicmorg/edge/main/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux/epicmorg/edge/main/Dockerfile b/linux/epicmorg/edge/main/Dockerfile index bf708c21e..dcec19e1d 100644 --- a/linux/epicmorg/edge/main/Dockerfile +++ b/linux/epicmorg/edge/main/Dockerfile @@ -3,9 +3,9 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive ################################################################## -# sid sources list +# bullseye sources list ################################################################## -COPY sources.sid.list /etc/apt/sources.list.d/sources.sid.list +COPY sources.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 && \ From b962aaa63db31a189709e351a105cf129614248e Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 13 Jul 2021 14:04:27 +0300 Subject: [PATCH 080/144] edge+ migrated to bullseye; nginx updated --- linux/epicmorg/edge/main/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/linux/epicmorg/edge/main/Dockerfile b/linux/epicmorg/edge/main/Dockerfile index dcec19e1d..71a652672 100644 --- a/linux/epicmorg/edge/main/Dockerfile +++ b/linux/epicmorg/edge/main/Dockerfile @@ -5,10 +5,11 @@ ARG DEBIAN_FRONTEND=noninteractive ################################################################## # bullseye sources list ################################################################## -COPY sources.list /etc/apt/sources.list.d/sources.sid.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 -o APT::Immediate-Configure=0 -t sid libc6 && \ + apt-get install -y libc6 && \ apt dist-upgrade -y && \ apt autoremove -y From da99d285b33c15d1b4fb81459db347b3d8b0ed42 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 13 Jul 2021 18:07:32 +0300 Subject: [PATCH 081/144] updated based images --- bin/docker-clean.sh | 6 ++++++ bin/docker-compose-update.sh | 2 ++ bin/make-all-epicmorg-based.sh | 39 ++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100755 bin/docker-clean.sh create mode 100755 bin/docker-compose-update.sh create mode 100755 bin/make-all-epicmorg-based.sh diff --git a/bin/docker-clean.sh b/bin/docker-clean.sh new file mode 100755 index 000000000..f31396591 --- /dev/null +++ b/bin/docker-clean.sh @@ -0,0 +1,6 @@ +docker container prune -f +docker image prune -f +docker network prune -f +docker volume prune -f +docker system prune -af +exit 0 \ No newline at end of file diff --git a/bin/docker-compose-update.sh b/bin/docker-compose-update.sh new file mode 100755 index 000000000..1ead8aefa --- /dev/null +++ b/bin/docker-compose-update.sh @@ -0,0 +1,2 @@ +curl -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 +exit 0 \ No newline at end of file diff --git a/bin/make-all-epicmorg-based.sh b/bin/make-all-epicmorg-based.sh new file mode 100755 index 000000000..5bc5af2b6 --- /dev/null +++ b/bin/make-all-epicmorg-based.sh @@ -0,0 +1,39 @@ +export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +clear + +cd ${SCRIPTPATH}/../linux/epicmorg/prod/main && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/prod/jdk6 && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/prod/jdk7 && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/prod/jdk8 && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/prod/jdk11 && pwd && make + +cd ${SCRIPTPATH}/../linux/epicmorg/edge/main && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/edge/jdk6 && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/edge/jdk7 && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/edge/jdk8 && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/edge/jdk11 && pwd && make + +cd ${SCRIPTPATH}/../linux/epicmorg/devel/main && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/devel/jdk6 && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/devel/jdk7 && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/devel/jdk8 && pwd && make +cd ${SCRIPTPATH}/../linux/epicmorg/devel/jdk11 && pwd && make + +cd ${SCRIPTPATH}/../linux/php/latest && pwd && make +cd ${SCRIPTPATH}/../linux/php/php7.2 && pwd && make +cd ${SCRIPTPATH}/../linux/php/php7.3 && pwd && make +cd ${SCRIPTPATH}/../linux/php/php7.4 && pwd && make + +cd ${SCRIPTPATH}/../linux/apache2/latest && pwd && make +cd ${SCRIPTPATH}/../linux/apache2/php7.2 && pwd && make +cd ${SCRIPTPATH}/../linux/apache2/php7.3 && pwd && make +cd ${SCRIPTPATH}/../linux/apache2/php7.4 && pwd && make + +cd ${SCRIPTPATH}/../linux/testrail/latest && pwd && make + +cd ${SCRIPTPATH}/../linux/nginx/latest/main && pwd && make +cd ${SCRIPTPATH}/../linux/nginx/latest/php && pwd && make +cd ${SCRIPTPATH}/../linux/nginx/latest/rtmp-hls && pwd && make + +exit 0 From aad42f71899d718ec9913eb8ffc31600e4cbb05a Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 13 Jul 2021 18:24:10 +0300 Subject: [PATCH 082/144] rework build scripts --- bin/make-all-epicmorg-based.sh | 22 + bin/make-all-third-party.sh | 20 + bin/make-all.sh | 15 + linux/apache2/latest/Dockerfile | 7 + linux/apache2/php7.2/Dockerfile | 6 + linux/apache2/php7.3/Dockerfile | 7 + linux/apache2/php7.4/Dockerfile | 7 + linux/epicmorg/edge/main/Dockerfile | 1 + linux/epicmorg/edge/main/sources.list | 21 + linux/nextcloud/22/Dockerfile | 72 +++ linux/{php/7.2 => nextcloud/22}/Makefile | 0 linux/nextcloud/22/README.md | 527 +++++++++++++++++++ linux/nextcloud/22/Streamer.php | 190 +++++++ linux/nextcloud/22/docker-compose.yml | 6 + linux/nextcloud/22/smb.conf | 239 +++++++++ linux/nextcloud/22/sources.list | 19 + linux/php/latest/Dockerfile | 32 +- linux/php/{7.2 => php7.2}/Dockerfile | 32 +- linux/php/{7.3 => php7.2}/Makefile | 0 linux/php/{7.2 => php7.2}/README.md | 0 linux/php/{7.2 => php7.2}/docker-compose.yml | 0 linux/php/{7.3 => php7.3}/Dockerfile | 31 +- linux/php/{7.4 => php7.3}/Makefile | 0 linux/php/{7.3 => php7.3}/README.md | 0 linux/php/{7.3 => php7.3}/docker-compose.yml | 0 linux/php/{7.4 => php7.4}/Dockerfile | 32 +- linux/php/php7.4/Makefile | 5 + linux/php/{7.4 => php7.4}/README.md | 0 linux/php/{7.4 => php7.4}/docker-compose.yml | 0 29 files changed, 1265 insertions(+), 26 deletions(-) create mode 100755 bin/make-all-third-party.sh create mode 100755 bin/make-all.sh create mode 100644 linux/epicmorg/edge/main/sources.list create mode 100644 linux/nextcloud/22/Dockerfile rename linux/{php/7.2 => nextcloud/22}/Makefile (100%) create mode 100644 linux/nextcloud/22/README.md create mode 100644 linux/nextcloud/22/Streamer.php create mode 100644 linux/nextcloud/22/docker-compose.yml create mode 100644 linux/nextcloud/22/smb.conf create mode 100644 linux/nextcloud/22/sources.list rename linux/php/{7.2 => php7.2}/Dockerfile (86%) rename linux/php/{7.3 => php7.2}/Makefile (100%) rename linux/php/{7.2 => php7.2}/README.md (100%) rename linux/php/{7.2 => php7.2}/docker-compose.yml (100%) rename linux/php/{7.3 => php7.3}/Dockerfile (87%) rename linux/php/{7.4 => php7.3}/Makefile (100%) rename linux/php/{7.3 => php7.3}/README.md (100%) rename linux/php/{7.3 => php7.3}/docker-compose.yml (100%) rename linux/php/{7.4 => php7.4}/Dockerfile (87%) create mode 100644 linux/php/php7.4/Makefile rename linux/php/{7.4 => php7.4}/README.md (100%) rename linux/php/{7.4 => php7.4}/docker-compose.yml (100%) diff --git a/bin/make-all-epicmorg-based.sh b/bin/make-all-epicmorg-based.sh index 5bc5af2b6..5f574349c 100755 --- a/bin/make-all-epicmorg-based.sh +++ b/bin/make-all-epicmorg-based.sh @@ -36,4 +36,26 @@ cd ${SCRIPTPATH}/../linux/nginx/latest/main && pwd && make cd ${SCRIPTPATH}/../linux/nginx/latest/php && pwd && make cd ${SCRIPTPATH}/../linux/nginx/latest/rtmp-hls && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/latest && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/8.2 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/8.3 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/8.4 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/9.0 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/9.1 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/9.2 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/9.3 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/9.4 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/9.5 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/9.6 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/10 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/11 && pwd && make +cd ${SCRIPTPATH}/../linux/postgres/12 && pwd && make + +cd ${SCRIPTPATH}/../linux/qbittorrent/latest && pwd && make +cd ${SCRIPTPATH}/../linux/qbittorrent/stable && pwd && make + +cd ${SCRIPTPATH}/../linux/vk2discord/latest && pwd && make + +cd ${SCRIPTPATH}/../linux/teamcity/agent && pwd && make + exit 0 diff --git a/bin/make-all-third-party.sh b/bin/make-all-third-party.sh new file mode 100755 index 000000000..ab3d2d12b --- /dev/null +++ b/bin/make-all-third-party.sh @@ -0,0 +1,20 @@ +export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +clear + +cd ${SCRIPTPATH}/../linux/mattermost/latest && pwd && make +cd ${SCRIPTPATH}/../linux/nextcloud/latest && pwd && make +cd ${SCRIPTPATH}/../linux/teamcity/server && pwd && make + + +cd ${SCRIPTPATH}/../linux/nextcloud/14 && pwd && make +cd ${SCRIPTPATH}/../linux/nextcloud/15 && pwd && make +cd ${SCRIPTPATH}/../linux/nextcloud/16 && pwd && make +cd ${SCRIPTPATH}/../linux/nextcloud/17 && pwd && make +cd ${SCRIPTPATH}/../linux/nextcloud/18 && pwd && make +cd ${SCRIPTPATH}/../linux/nextcloud/19 && pwd && make +cd ${SCRIPTPATH}/../linux/nextcloud/20 && pwd && make +cd ${SCRIPTPATH}/../linux/nextcloud/21 && pwd && make +cd ${SCRIPTPATH}/../linux/nextcloud/22 && pwd && make + +exit 0 diff --git a/bin/make-all.sh b/bin/make-all.sh new file mode 100755 index 000000000..78a0aeac2 --- /dev/null +++ b/bin/make-all.sh @@ -0,0 +1,15 @@ +export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + +clear + +echo "=======================================" +echo "===== Building third-party images =====" +echo "=======================================" +${SCRIPTPATH}/make-all-third-party.sh + +echo "=======================================" +echo "===== Building EpicMorg images =====" +echo "=======================================" +${SCRIPTPATH}/.make-all-epicmorg-based.sh + +exit 0 diff --git a/linux/apache2/latest/Dockerfile b/linux/apache2/latest/Dockerfile index 70697da92..c7a49b75e 100644 --- a/linux/apache2/latest/Dockerfile +++ b/linux/apache2/latest/Dockerfile @@ -59,6 +59,13 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PH 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 ################################################################## diff --git a/linux/apache2/php7.2/Dockerfile b/linux/apache2/php7.2/Dockerfile index c59fca7bf..d653289ec 100644 --- a/linux/apache2/php7.2/Dockerfile +++ b/linux/apache2/php7.2/Dockerfile @@ -59,6 +59,12 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PH 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 diff --git a/linux/apache2/php7.3/Dockerfile b/linux/apache2/php7.3/Dockerfile index e42e0ad7e..4f71b5beb 100644 --- a/linux/apache2/php7.3/Dockerfile +++ b/linux/apache2/php7.3/Dockerfile @@ -59,6 +59,13 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${P 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 ################################################################## diff --git a/linux/apache2/php7.4/Dockerfile b/linux/apache2/php7.4/Dockerfile index 70697da92..c7a49b75e 100644 --- a/linux/apache2/php7.4/Dockerfile +++ b/linux/apache2/php7.4/Dockerfile @@ -59,6 +59,13 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PH 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 ################################################################## diff --git a/linux/epicmorg/edge/main/Dockerfile b/linux/epicmorg/edge/main/Dockerfile index 71a652672..c86fa4cfb 100644 --- a/linux/epicmorg/edge/main/Dockerfile +++ b/linux/epicmorg/edge/main/Dockerfile @@ -10,6 +10,7 @@ COPY sources.list /etc/apt/sources.list RUN apt update && \ apt autoremove -y && \ apt-get install -y libc6 && \ + apt upgrade -y && \ apt dist-upgrade -y && \ apt autoremove -y diff --git a/linux/epicmorg/edge/main/sources.list b/linux/epicmorg/edge/main/sources.list new file mode 100644 index 000000000..72e28c570 --- /dev/null +++ b/linux/epicmorg/edge/main/sources.list @@ -0,0 +1,21 @@ +#main +deb http://ftp.ru.debian.org/debian/ bullseye main contrib non-free +deb-src http://ftp.ru.debian.org/debian/ bullseye main contrib non-free +deb http://ftp.ru.debian.org/debian/ bullseye-updates main contrib non-free +deb-src http://ftp.ru.debian.org/debian/ bullseye-updates main contrib non-free +deb http://ftp.ru.debian.org/debian/ bullseye-backports main contrib non-free +deb-src http://ftp.ru.debian.org/debian/ bullseye-backports main contrib non-free +deb http://ftp.ru.debian.org/debian/ bullseye-proposed-updates main contrib non-free +deb-src http://ftp.ru.debian.org/debian/ bullseye-proposed-updates main contrib non-free + +#security +deb http://ftp.ru.debian.org/debian-security/ bullseye-security main contrib non-free +deb-src http://ftp.ru.debian.org/debian-security/ bullseye-security main contrib non-free +deb http://ftp.ru.debian.org/debian-security/ bullseye-security/updates main contrib non-free +deb-src http://ftp.ru.debian.org/debian-security/ bullseye-security/updates main contrib non-free + +##multimedia +# deb http://ftp.ru.debian.org/debian-multimedia/ bullseye main non-free +# deb-src http://ftp.ru.debian.org/debian-multimedia/ bullseye main non-free +# deb http://ftp.ru.debian.org/debian-multimedia/ bullseye-backports main +# deb-src http://ftp.ru.debian.org/debian-multimedia/ bullseye-backports main diff --git a/linux/nextcloud/22/Dockerfile b/linux/nextcloud/22/Dockerfile new file mode 100644 index 000000000..fc7580117 --- /dev/null +++ b/linux/nextcloud/22/Dockerfile @@ -0,0 +1,72 @@ +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 + +################################################################## +# 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/php/7.2/Makefile b/linux/nextcloud/22/Makefile similarity index 100% rename from linux/php/7.2/Makefile rename to linux/nextcloud/22/Makefile diff --git a/linux/nextcloud/22/README.md b/linux/nextcloud/22/README.md new file mode 100644 index 000000000..b6df71808 --- /dev/null +++ b/linux/nextcloud/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/nextcloud/22/Streamer.php b/linux/nextcloud/22/Streamer.php new file mode 100644 index 000000000..02a7719e4 --- /dev/null +++ b/linux/nextcloud/22/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/nextcloud/22/docker-compose.yml b/linux/nextcloud/22/docker-compose.yml new file mode 100644 index 000000000..1eb96cb2a --- /dev/null +++ b/linux/nextcloud/22/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/nextcloud:22" + build: + context: . diff --git a/linux/nextcloud/22/smb.conf b/linux/nextcloud/22/smb.conf new file mode 100644 index 000000000..9346a22f4 --- /dev/null +++ b/linux/nextcloud/22/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/nextcloud/22/sources.list b/linux/nextcloud/22/sources.list new file mode 100644 index 000000000..fd3092816 --- /dev/null +++ b/linux/nextcloud/22/sources.list @@ -0,0 +1,19 @@ +#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/php/latest/Dockerfile b/linux/php/latest/Dockerfile index b471eea3c..636ff30ec 100644 --- a/linux/php/latest/Dockerfile +++ b/linux/php/latest/Dockerfile @@ -69,7 +69,6 @@ RUN cd ${MAKE_DIR} && \ make install && \ cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} - ################################################################## # compilling smbclient ################################################################## @@ -93,7 +92,6 @@ 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 \ @@ -136,12 +134,18 @@ RUN apt-get update && \ php7.4-gnupg \ php7.4-redis \ smbclient libsmbclient \ -# php-smbclient \ 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 && \ - phpenmod \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ snmp \ gmp \ calendar \ @@ -178,7 +182,21 @@ RUN apt-get update && \ xmlwriter \ xsl \ yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + 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 @@ -199,7 +217,7 @@ RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ # Installing P4 addon ################################################################## COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ +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 && \ @@ -210,7 +228,7 @@ RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ # Installing smbclient addon ################################################################## COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} -RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ +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 && \ diff --git a/linux/php/7.2/Dockerfile b/linux/php/php7.2/Dockerfile similarity index 86% rename from linux/php/7.2/Dockerfile rename to linux/php/php7.2/Dockerfile index e14d1cf5f..f96d5f752 100644 --- a/linux/php/7.2/Dockerfile +++ b/linux/php/php7.2/Dockerfile @@ -89,11 +89,8 @@ 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 \ @@ -134,7 +131,15 @@ RUN apt-get update && \ php7.2-yaml \ php7.2-geoip \ sendmail && \ - phpenmod \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + update-alternatives --set php /usr/bin/php7.2 && \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ calendar \ ldap \ curl \ @@ -167,7 +172,21 @@ RUN apt-get update && \ xmlwriter \ xsl \ yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + 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 @@ -188,7 +207,8 @@ RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ # Installing P4 addon ################################################################## COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ +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 && \ diff --git a/linux/php/7.3/Makefile b/linux/php/php7.2/Makefile similarity index 100% rename from linux/php/7.3/Makefile rename to linux/php/php7.2/Makefile diff --git a/linux/php/7.2/README.md b/linux/php/php7.2/README.md similarity index 100% rename from linux/php/7.2/README.md rename to linux/php/php7.2/README.md diff --git a/linux/php/7.2/docker-compose.yml b/linux/php/php7.2/docker-compose.yml similarity index 100% rename from linux/php/7.2/docker-compose.yml rename to linux/php/php7.2/docker-compose.yml diff --git a/linux/php/7.3/Dockerfile b/linux/php/php7.3/Dockerfile similarity index 87% rename from linux/php/7.3/Dockerfile rename to linux/php/php7.3/Dockerfile index 74d1436f6..10d6bf2ff 100644 --- a/linux/php/7.3/Dockerfile +++ b/linux/php/php7.3/Dockerfile @@ -88,11 +88,8 @@ 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 \ @@ -138,7 +135,15 @@ RUN apt-get update && \ php7.3-yaml \ php7.3-geoip \ sendmail && \ - phpenmod \ + 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 \ @@ -175,7 +180,21 @@ RUN apt-get update && \ xmlwriter \ xsl \ yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + 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 @@ -196,7 +215,7 @@ RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ # Installing P4 addon ################################################################## COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ +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 && \ diff --git a/linux/php/7.4/Makefile b/linux/php/php7.3/Makefile similarity index 100% rename from linux/php/7.4/Makefile rename to linux/php/php7.3/Makefile diff --git a/linux/php/7.3/README.md b/linux/php/php7.3/README.md similarity index 100% rename from linux/php/7.3/README.md rename to linux/php/php7.3/README.md diff --git a/linux/php/7.3/docker-compose.yml b/linux/php/php7.3/docker-compose.yml similarity index 100% rename from linux/php/7.3/docker-compose.yml rename to linux/php/php7.3/docker-compose.yml diff --git a/linux/php/7.4/Dockerfile b/linux/php/php7.4/Dockerfile similarity index 87% rename from linux/php/7.4/Dockerfile rename to linux/php/php7.4/Dockerfile index b471eea3c..636ff30ec 100644 --- a/linux/php/7.4/Dockerfile +++ b/linux/php/php7.4/Dockerfile @@ -69,7 +69,6 @@ RUN cd ${MAKE_DIR} && \ make install && \ cp ${PHP_MODULE_PATH}/perforce.so ${EXPORT_DIR} - ################################################################## # compilling smbclient ################################################################## @@ -93,7 +92,6 @@ 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 \ @@ -136,12 +134,18 @@ RUN apt-get update && \ php7.4-gnupg \ php7.4-redis \ smbclient libsmbclient \ -# php-smbclient \ 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 && \ - phpenmod \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ snmp \ gmp \ calendar \ @@ -178,7 +182,21 @@ RUN apt-get update && \ xmlwriter \ xsl \ yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + 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 @@ -199,7 +217,7 @@ RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \ # Installing P4 addon ################################################################## COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH} -RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ +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 && \ @@ -210,7 +228,7 @@ RUN echo "extension=perforce.so" > ${P4_PHP_INI} && \ # Installing smbclient addon ################################################################## COPY --from=builder /builds/export/smbclient.so ${PHP_MODULE_PATH} -RUN echo "extension=smbclient.so" > ${SMB_PHP_INI} && \ +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 && \ diff --git a/linux/php/php7.4/Makefile b/linux/php/php7.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/php/php7.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/php/7.4/README.md b/linux/php/php7.4/README.md similarity index 100% rename from linux/php/7.4/README.md rename to linux/php/php7.4/README.md diff --git a/linux/php/7.4/docker-compose.yml b/linux/php/php7.4/docker-compose.yml similarity index 100% rename from linux/php/7.4/docker-compose.yml rename to linux/php/php7.4/docker-compose.yml From 0afb55073412080016ea905de90ed11e281c5585 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 14 Jul 2021 02:33:49 +0300 Subject: [PATCH 083/144] fixes --- bin/make-all-third-party.sh | 8 ++ bin/make-all.sh | 6 +- linux/teamcity/agent/Dockerfile | 114 +++++++++++++++----------- linux/teamcity/agent/sources.sid.list | 7 ++ linux/vk2discord/latest/Dockerfile | 4 +- 5 files changed, 89 insertions(+), 50 deletions(-) create mode 100644 linux/teamcity/agent/sources.sid.list diff --git a/bin/make-all-third-party.sh b/bin/make-all-third-party.sh index ab3d2d12b..0406d77e7 100755 --- a/bin/make-all-third-party.sh +++ b/bin/make-all-third-party.sh @@ -2,6 +2,14 @@ export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" clear +cd ${SCRIPTPATH}/../linux/zabbix/agent && pwd && make +cd ${SCRIPTPATH}/../linux/zabbix/java-gateway && pwd && make +cd ${SCRIPTPATH}/../linux/zabbix/proxy && pwd && make +cd ${SCRIPTPATH}/../linux/zabbix/server && pwd && make +cd ${SCRIPTPATH}/../linux/zabbix/web && pwd && make + +exit 1 + cd ${SCRIPTPATH}/../linux/mattermost/latest && pwd && make cd ${SCRIPTPATH}/../linux/nextcloud/latest && pwd && make cd ${SCRIPTPATH}/../linux/teamcity/server && pwd && make diff --git a/bin/make-all.sh b/bin/make-all.sh index 78a0aeac2..9f6f12bc6 100755 --- a/bin/make-all.sh +++ b/bin/make-all.sh @@ -1,15 +1,19 @@ export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" clear +pause 3 echo "=======================================" echo "===== Building third-party images =====" echo "=======================================" ${SCRIPTPATH}/make-all-third-party.sh +clear +pause 3 + echo "=======================================" echo "===== Building EpicMorg images =====" echo "=======================================" -${SCRIPTPATH}/.make-all-epicmorg-based.sh +${SCRIPTPATH}/make-all-epicmorg-based.sh exit 0 diff --git a/linux/teamcity/agent/Dockerfile b/linux/teamcity/agent/Dockerfile index 5347ddb2d..64cd400d8 100644 --- a/linux/teamcity/agent/Dockerfile +++ b/linux/teamcity/agent/Dockerfile @@ -18,9 +18,10 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive ################################################################## -# bullseye sources list +# sid sources list ################################################################## -#COPY sources.bullseye.list /etc/apt/sources.list.d/sources.bullseye.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 && \ @@ -65,7 +66,7 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=true ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true # Configure Kestrel web server to bind to port 80 when present -ENV ASPNETCORE_URLS=http://+:80 +ENV ASPNETCORE_URLS=\ # Enable detection of running in a container ENV DOTNET_RUNNING_IN_CONTAINER=true @@ -79,6 +80,9 @@ 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 && \ @@ -92,15 +96,21 @@ RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - libssl1.1 \ libstdc++6 \ zlib1g \ - dotnet-sdk-3.1 \ - aspnetcore-runtime-3.1 \ - dotnet-runtime-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-host \ + powershell-preview \ 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-preview -v && \ pwsh -v ################################################################## @@ -198,7 +208,9 @@ RUN sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sour 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 +################################################################## +# Installing PHP7 +################################################################## RUN apt-get update && \ apt-get install -y --allow-unauthenticated \ libmemcached-dev \ @@ -208,43 +220,51 @@ RUN apt-get update && \ 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 \ + 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 \ + php7.4-yaml \ + php7.4-geoip \ sendmail && \ - phpenmod \ + ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ + update-alternatives --set php /usr/bin/php7.4 && \ + php -m && \ + php -v + +################################################################## +# Enabling extensions +################################################################## +RUN phpenmod \ snmp \ gmp \ calendar \ @@ -281,7 +301,6 @@ RUN apt-get update && \ xmlwriter \ xsl \ yaml && \ - ln -sf /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \ php -m && \ php -v @@ -322,13 +341,14 @@ RUN cd /tmp && \ ################################################################## -# Node.js 15.x +# Node.js 16.x ################################################################## -RUN curl -sL https://deb.nodesource.com/setup_15.x | bash - && \ +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 + apt-get install -y nodejs yarn && \ + npm install -g npm@7.19.1 ################################################################## # steam runtime and ssdk diff --git a/linux/teamcity/agent/sources.sid.list b/linux/teamcity/agent/sources.sid.list new file mode 100644 index 000000000..d3d573cdc --- /dev/null +++ b/linux/teamcity/agent/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/vk2discord/latest/Dockerfile b/linux/vk2discord/latest/Dockerfile index 75709c22f..a060eccea 100644 --- a/linux/vk2discord/latest/Dockerfile +++ b/linux/vk2discord/latest/Dockerfile @@ -11,9 +11,9 @@ LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive ################################################################## -# Node.js 14.x +# Node.js 16.x ################################################################## -RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ +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 && \ From a4739dce41ffbe72feeffc01052d46b36dbd2900 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 18 Aug 2021 23:24:17 +0300 Subject: [PATCH 084/144] postgresql fixes --- CHANGELOG.md | 5 + linux/postgres/10/Dockerfile | 41 ++- linux/postgres/10/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/11/Dockerfile | 41 ++- linux/postgres/11/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/12/Dockerfile | 41 ++- linux/postgres/12/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/13/Dockerfile | 90 +++++ linux/postgres/13/Makefile | 5 + linux/postgres/13/README.md | 364 +++++++++++++++++++ linux/postgres/13/docker-compose.yml | 6 + linux/postgres/13/docker-entrypoint.sh | 327 +++++++++++++++++ linux/postgres/14/Dockerfile | 90 +++++ linux/postgres/14/Makefile | 5 + linux/postgres/14/README.md | 364 +++++++++++++++++++ linux/postgres/14/docker-compose.yml | 6 + linux/postgres/14/docker-entrypoint.sh | 327 +++++++++++++++++ linux/postgres/8.2/Dockerfile | 45 ++- linux/postgres/8.2/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/8.3/Dockerfile | 46 ++- linux/postgres/8.3/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/8.4/Dockerfile | 47 ++- linux/postgres/8.4/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/9.0/Dockerfile | 46 ++- linux/postgres/9.0/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/9.1/Dockerfile | 16 +- linux/postgres/9.1/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/9.2/Dockerfile | 46 ++- linux/postgres/9.2/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/9.3/Dockerfile | 45 ++- linux/postgres/9.3/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/9.4/Dockerfile | 41 ++- linux/postgres/9.4/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/9.5/Dockerfile | 42 ++- linux/postgres/9.5/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/9.6/Dockerfile | 41 ++- linux/postgres/Dockerfile.template | 44 --- linux/postgres/docker-entrypoint.sh | 24 -- linux/postgres/generate-stackbrew-library.sh | 27 -- linux/postgres/latest/Dockerfile | 45 ++- linux/postgres/latest/docker-entrypoint.sh | 345 ++++++++++++++++-- linux/postgres/update.sh | 26 -- 42 files changed, 6293 insertions(+), 485 deletions(-) create mode 100644 linux/postgres/13/Dockerfile create mode 100644 linux/postgres/13/Makefile create mode 100644 linux/postgres/13/README.md create mode 100644 linux/postgres/13/docker-compose.yml create mode 100755 linux/postgres/13/docker-entrypoint.sh create mode 100644 linux/postgres/14/Dockerfile create mode 100644 linux/postgres/14/Makefile create mode 100644 linux/postgres/14/README.md create mode 100644 linux/postgres/14/docker-compose.yml create mode 100755 linux/postgres/14/docker-entrypoint.sh delete mode 100644 linux/postgres/Dockerfile.template delete mode 100755 linux/postgres/docker-entrypoint.sh delete mode 100755 linux/postgres/generate-stackbrew-library.sh delete mode 100755 linux/postgres/update.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index ef3ed1eac..475b79056 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## Changelog ### 2021 +* `august` + * 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`. diff --git a/linux/postgres/10/Dockerfile b/linux/postgres/10/Dockerfile index 02682bed4..5ecee8d3a 100644 --- a/linux/postgres/10/Dockerfile +++ b/linux/postgres/10/Dockerfile @@ -11,11 +11,11 @@ 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/1.11/gosu-amd64' \ + && 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 #################################################################################################################################### @@ -33,8 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -44,16 +44,47 @@ RUN apt-get update \ 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/postgres/10/docker-entrypoint.sh b/linux/postgres/10/docker-entrypoint.sh index 8011908ac..ac197eed5 100755 --- a/linux/postgres/10/docker-entrypoint.sh +++ b/linux/postgres/10/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/11/Dockerfile b/linux/postgres/11/Dockerfile index dbee12bf6..5db8d5879 100644 --- a/linux/postgres/11/Dockerfile +++ b/linux/postgres/11/Dockerfile @@ -11,11 +11,11 @@ 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/1.11/gosu-amd64' \ + && 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 #################################################################################################################################### @@ -33,8 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -44,16 +44,47 @@ RUN apt-get update \ 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/postgres/11/docker-entrypoint.sh b/linux/postgres/11/docker-entrypoint.sh index 8011908ac..eeeac649d 100755 --- a/linux/postgres/11/docker-entrypoint.sh +++ b/linux/postgres/11/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 - - exec gosu postgres "$@" -fi -exec "$@" + # 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/postgres/12/Dockerfile b/linux/postgres/12/Dockerfile index 37bdbc0ed..3a80443a7 100644 --- a/linux/postgres/12/Dockerfile +++ b/linux/postgres/12/Dockerfile @@ -11,11 +11,11 @@ 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/1.11/gosu-amd64' \ + && 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 #################################################################################################################################### @@ -33,8 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -44,16 +44,47 @@ RUN apt-get update \ 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/postgres/12/docker-entrypoint.sh b/linux/postgres/12/docker-entrypoint.sh index 8011908ac..ac197eed5 100755 --- a/linux/postgres/12/docker-entrypoint.sh +++ b/linux/postgres/12/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/13/Dockerfile b/linux/postgres/13/Dockerfile new file mode 100644 index 000000000..e8cbe256b --- /dev/null +++ b/linux/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/postgres/13/Makefile b/linux/postgres/13/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/postgres/13/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/13/README.md b/linux/postgres/13/README.md new file mode 100644 index 000000000..7cb08760e --- /dev/null +++ b/linux/postgres/13/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/postgres/13/docker-compose.yml b/linux/postgres/13/docker-compose.yml new file mode 100644 index 000000000..04033e531 --- /dev/null +++ b/linux/postgres/13/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:13" + build: + context: . diff --git a/linux/postgres/13/docker-entrypoint.sh b/linux/postgres/13/docker-entrypoint.sh new file mode 100755 index 000000000..eeeac649d --- /dev/null +++ b/linux/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/postgres/14/Dockerfile b/linux/postgres/14/Dockerfile new file mode 100644 index 000000000..8cae46765 --- /dev/null +++ b/linux/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/postgres/14/Makefile b/linux/postgres/14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/postgres/14/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/postgres/14/README.md b/linux/postgres/14/README.md new file mode 100644 index 000000000..7cb08760e --- /dev/null +++ b/linux/postgres/14/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/postgres/14/docker-compose.yml b/linux/postgres/14/docker-compose.yml new file mode 100644 index 000000000..cb1c7d2a6 --- /dev/null +++ b/linux/postgres/14/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/postgres:14" + build: + context: . diff --git a/linux/postgres/14/docker-entrypoint.sh b/linux/postgres/14/docker-entrypoint.sh new file mode 100755 index 000000000..eeeac649d --- /dev/null +++ b/linux/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/postgres/8.2/Dockerfile b/linux/postgres/8.2/Dockerfile index 480d00bbc..619fe9690 100644 --- a/linux/postgres/8.2/Dockerfile +++ b/linux/postgres/8.2/Dockerfile @@ -11,12 +11,12 @@ 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/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl + && 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 @@ -33,8 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -44,16 +44,47 @@ RUN apt-get update \ 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/postgres/8.2/docker-entrypoint.sh b/linux/postgres/8.2/docker-entrypoint.sh index 8011908ac..7e74d0c7c 100755 --- a/linux/postgres/8.2/docker-entrypoint.sh +++ b/linux/postgres/8.2/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/8.3/Dockerfile b/linux/postgres/8.3/Dockerfile index f28443396..ee1e3ebcf 100644 --- a/linux/postgres/8.3/Dockerfile +++ b/linux/postgres/8.3/Dockerfile @@ -11,12 +11,12 @@ 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/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl + && 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 @@ -34,9 +34,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F 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 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 \ @@ -46,16 +45,47 @@ RUN apt-get update \ 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/postgres/8.3/docker-entrypoint.sh b/linux/postgres/8.3/docker-entrypoint.sh index 8011908ac..7e74d0c7c 100755 --- a/linux/postgres/8.3/docker-entrypoint.sh +++ b/linux/postgres/8.3/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/8.4/Dockerfile b/linux/postgres/8.4/Dockerfile index 0dc019a3c..e24dd3a96 100644 --- a/linux/postgres/8.4/Dockerfile +++ b/linux/postgres/8.4/Dockerfile @@ -11,12 +11,12 @@ 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/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl + && 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 @@ -33,9 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -45,17 +44,47 @@ RUN apt-get update \ 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/postgres/8.4/docker-entrypoint.sh b/linux/postgres/8.4/docker-entrypoint.sh index 8011908ac..7e74d0c7c 100755 --- a/linux/postgres/8.4/docker-entrypoint.sh +++ b/linux/postgres/8.4/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/9.0/Dockerfile b/linux/postgres/9.0/Dockerfile index 518b49018..df25f3262 100644 --- a/linux/postgres/9.0/Dockerfile +++ b/linux/postgres/9.0/Dockerfile @@ -11,12 +11,12 @@ 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/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl + && 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 @@ -33,9 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -45,17 +44,48 @@ RUN apt-get update \ 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/postgres/9.0/docker-entrypoint.sh b/linux/postgres/9.0/docker-entrypoint.sh index 8011908ac..7e74d0c7c 100755 --- a/linux/postgres/9.0/docker-entrypoint.sh +++ b/linux/postgres/9.0/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/9.1/Dockerfile b/linux/postgres/9.1/Dockerfile index 49ad56e2f..d204f1d01 100644 --- a/linux/postgres/9.1/Dockerfile +++ b/linux/postgres/9.1/Dockerfile @@ -11,12 +11,12 @@ 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/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl + && 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 @@ -29,13 +29,13 @@ 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/ +# 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/ 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 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 \ @@ -45,12 +45,14 @@ RUN apt-get update \ 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 / diff --git a/linux/postgres/9.1/docker-entrypoint.sh b/linux/postgres/9.1/docker-entrypoint.sh index 8011908ac..7e74d0c7c 100755 --- a/linux/postgres/9.1/docker-entrypoint.sh +++ b/linux/postgres/9.1/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/9.2/Dockerfile b/linux/postgres/9.2/Dockerfile index d99fa5c81..73c9d1483 100644 --- a/linux/postgres/9.2/Dockerfile +++ b/linux/postgres/9.2/Dockerfile @@ -11,12 +11,12 @@ 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/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl + && 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 @@ -33,9 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -45,17 +44,48 @@ RUN apt-get update \ 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/postgres/9.2/docker-entrypoint.sh b/linux/postgres/9.2/docker-entrypoint.sh index 8011908ac..7e74d0c7c 100755 --- a/linux/postgres/9.2/docker-entrypoint.sh +++ b/linux/postgres/9.2/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/9.3/Dockerfile b/linux/postgres/9.3/Dockerfile index d32d7f120..782e711de 100644 --- a/linux/postgres/9.3/Dockerfile +++ b/linux/postgres/9.3/Dockerfile @@ -11,12 +11,12 @@ 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/1.11/gosu-amd64' \ - && chmod +x /usr/local/bin/gosu \ - - && apt-get purge -y --auto-remove curl + && 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 @@ -33,8 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -44,16 +44,47 @@ RUN apt-get update \ 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/postgres/9.3/docker-entrypoint.sh b/linux/postgres/9.3/docker-entrypoint.sh index 8011908ac..7e74d0c7c 100755 --- a/linux/postgres/9.3/docker-entrypoint.sh +++ b/linux/postgres/9.3/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/9.4/Dockerfile b/linux/postgres/9.4/Dockerfile index 6303faaab..d09a1fbb4 100644 --- a/linux/postgres/9.4/Dockerfile +++ b/linux/postgres/9.4/Dockerfile @@ -11,11 +11,11 @@ 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/1.11/gosu-amd64' \ + && 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 #################################################################################################################################### @@ -33,8 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -44,16 +44,47 @@ RUN apt-get update \ 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/postgres/9.4/docker-entrypoint.sh b/linux/postgres/9.4/docker-entrypoint.sh index 8011908ac..7e74d0c7c 100755 --- a/linux/postgres/9.4/docker-entrypoint.sh +++ b/linux/postgres/9.4/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/9.5/Dockerfile b/linux/postgres/9.5/Dockerfile index 2e5b0b5bd..29cd92931 100644 --- a/linux/postgres/9.5/Dockerfile +++ b/linux/postgres/9.5/Dockerfile @@ -11,11 +11,11 @@ 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/1.11/gosu-amd64' \ + && 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 #################################################################################################################################### @@ -29,12 +29,12 @@ 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/ +# 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/ 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 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 \ @@ -44,16 +44,48 @@ RUN apt-get update \ 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/postgres/9.5/docker-entrypoint.sh b/linux/postgres/9.5/docker-entrypoint.sh index 8011908ac..7e74d0c7c 100755 --- a/linux/postgres/9.5/docker-entrypoint.sh +++ b/linux/postgres/9.5/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 -exec "$@" + 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/postgres/9.6/Dockerfile b/linux/postgres/9.6/Dockerfile index db4cc69e0..1a4507f5b 100644 --- a/linux/postgres/9.6/Dockerfile +++ b/linux/postgres/9.6/Dockerfile @@ -11,11 +11,11 @@ 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/1.11/gosu-amd64' \ + && 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 #################################################################################################################################### @@ -33,8 +33,8 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F #################################################################################################################################### 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 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 \ @@ -44,16 +44,47 @@ RUN apt-get update \ 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/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 index 37bdbc0ed..8cae46765 100644 --- a/linux/postgres/latest/Dockerfile +++ b/linux/postgres/latest/Dockerfile @@ -11,11 +11,11 @@ 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/1.11/gosu-amd64' \ + && 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 #################################################################################################################################### @@ -29,12 +29,12 @@ 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/ +# http://apt.postgresql.org/pub/repos/apt/pool/14/p/postgresql-14/ #################################################################################################################################### -ENV PG_MAJOR 12 +ENV PG_MAJOR 14 -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 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 \ @@ -44,16 +44,47 @@ RUN apt-get update \ 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/postgres/latest/docker-entrypoint.sh b/linux/postgres/latest/docker-entrypoint.sh index 8011908ac..eeeac649d 100755 --- a/linux/postgres/latest/docker-entrypoint.sh +++ b/linux/postgres/latest/docker-entrypoint.sh @@ -1,24 +1,327 @@ -#!/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 +#!/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 - - exec gosu postgres "$@" -fi -exec "$@" + # 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/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" From 665849f39fb3fbf731568dee0c994237b7db2829 Mon Sep 17 00:00:00 2001 From: STAM Date: Mon, 30 Aug 2021 13:44:34 +0300 Subject: [PATCH 085/144] tc-agent separated --- CHANGELOG.md | 1 + linux/atlassian/confluence/latest/Dockerfile | 2 +- .../confluence/latest/Dockerfile.jdk11 | 2 +- linux/teamcity/agent/{ => latest}/Dockerfile | 0 linux/teamcity/agent/{ => latest}/Makefile | 0 linux/teamcity/agent/{ => latest}/README.md | 0 .../agent/{ => latest}/docker-compose.yml | 0 .../teamcity/agent/{ => latest}/run-agent.sh | 0 .../teamcity/agent/{ => latest}/run-docker.sh | 0 .../agent/{ => latest}/run-services.sh | 0 .../agent/{ => latest}/sources.sid.list | 0 linux/teamcity/agent/node12/Dockerfile | 73 +++++++++++++++ linux/teamcity/agent/node12/Makefile | 5 + linux/teamcity/agent/node12/README.md | 93 +++++++++++++++++++ .../teamcity/agent/node12/docker-compose.yml | 6 ++ linux/teamcity/agent/node12/run-agent.sh | 90 ++++++++++++++++++ linux/teamcity/agent/node12/run-services.sh | 15 +++ linux/teamcity/agent/node12/sources.sid.list | 7 ++ linux/teamcity/agent/node14/Dockerfile | 73 +++++++++++++++ linux/teamcity/agent/node14/Makefile | 5 + linux/teamcity/agent/node14/README.md | 93 +++++++++++++++++++ .../teamcity/agent/node14/docker-compose.yml | 6 ++ linux/teamcity/agent/node14/run-agent.sh | 90 ++++++++++++++++++ linux/teamcity/agent/node14/run-services.sh | 15 +++ linux/teamcity/agent/node14/sources.sid.list | 7 ++ linux/teamcity/agent/node15/Dockerfile | 73 +++++++++++++++ linux/teamcity/agent/node15/Makefile | 5 + linux/teamcity/agent/node15/README.md | 93 +++++++++++++++++++ .../teamcity/agent/node15/docker-compose.yml | 6 ++ linux/teamcity/agent/node15/run-agent.sh | 90 ++++++++++++++++++ linux/teamcity/agent/node15/run-services.sh | 15 +++ linux/teamcity/agent/node15/sources.sid.list | 7 ++ linux/teamcity/agent/node16/Dockerfile | 73 +++++++++++++++ linux/teamcity/agent/node16/Makefile | 5 + linux/teamcity/agent/node16/README.md | 93 +++++++++++++++++++ .../teamcity/agent/node16/docker-compose.yml | 6 ++ linux/teamcity/agent/node16/run-agent.sh | 90 ++++++++++++++++++ linux/teamcity/agent/node16/run-services.sh | 15 +++ linux/teamcity/agent/node16/sources.sid.list | 7 ++ 39 files changed, 1159 insertions(+), 2 deletions(-) rename linux/teamcity/agent/{ => latest}/Dockerfile (100%) rename linux/teamcity/agent/{ => latest}/Makefile (100%) rename linux/teamcity/agent/{ => latest}/README.md (100%) rename linux/teamcity/agent/{ => latest}/docker-compose.yml (100%) rename linux/teamcity/agent/{ => latest}/run-agent.sh (100%) rename linux/teamcity/agent/{ => latest}/run-docker.sh (100%) rename linux/teamcity/agent/{ => latest}/run-services.sh (100%) rename linux/teamcity/agent/{ => latest}/sources.sid.list (100%) create mode 100644 linux/teamcity/agent/node12/Dockerfile create mode 100644 linux/teamcity/agent/node12/Makefile create mode 100644 linux/teamcity/agent/node12/README.md create mode 100644 linux/teamcity/agent/node12/docker-compose.yml create mode 100755 linux/teamcity/agent/node12/run-agent.sh create mode 100755 linux/teamcity/agent/node12/run-services.sh create mode 100644 linux/teamcity/agent/node12/sources.sid.list create mode 100644 linux/teamcity/agent/node14/Dockerfile create mode 100644 linux/teamcity/agent/node14/Makefile create mode 100644 linux/teamcity/agent/node14/README.md create mode 100644 linux/teamcity/agent/node14/docker-compose.yml create mode 100755 linux/teamcity/agent/node14/run-agent.sh create mode 100755 linux/teamcity/agent/node14/run-services.sh create mode 100644 linux/teamcity/agent/node14/sources.sid.list create mode 100644 linux/teamcity/agent/node15/Dockerfile create mode 100644 linux/teamcity/agent/node15/Makefile create mode 100644 linux/teamcity/agent/node15/README.md create mode 100644 linux/teamcity/agent/node15/docker-compose.yml create mode 100755 linux/teamcity/agent/node15/run-agent.sh create mode 100755 linux/teamcity/agent/node15/run-services.sh create mode 100644 linux/teamcity/agent/node15/sources.sid.list create mode 100644 linux/teamcity/agent/node16/Dockerfile create mode 100644 linux/teamcity/agent/node16/Makefile create mode 100644 linux/teamcity/agent/node16/README.md create mode 100644 linux/teamcity/agent/node16/docker-compose.yml create mode 100755 linux/teamcity/agent/node16/run-agent.sh create mode 100755 linux/teamcity/agent/node16/run-services.sh create mode 100644 linux/teamcity/agent/node16/sources.sid.list diff --git a/CHANGELOG.md b/CHANGELOG.md index 475b79056..ae777e743 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Changelog ### 2021 * `august` + * splited `tc-agents` with `nodejs` * fixed `PostgreSQL` images * added `PostgreSQL 13` and `PostgreSQL 14`. `latest` tag symlinked to `14`. * `july` diff --git a/linux/atlassian/confluence/latest/Dockerfile b/linux/atlassian/confluence/latest/Dockerfile index 7ae05c9dc..3d00cf78d 100644 --- a/linux/atlassian/confluence/latest/Dockerfile +++ b/linux/atlassian/confluence/latest/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive ################################################################## # ARGuments ################################################################## -ARG CONFLUENCE_VERSION=7.11.2 +ARG CONFLUENCE_VERSION=7.13.0 ARG DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz ################################################################## diff --git a/linux/atlassian/confluence/latest/Dockerfile.jdk11 b/linux/atlassian/confluence/latest/Dockerfile.jdk11 index 5846e6aae..3e897cca5 100644 --- a/linux/atlassian/confluence/latest/Dockerfile.jdk11 +++ b/linux/atlassian/confluence/latest/Dockerfile.jdk11 @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive ################################################################## # ARGuments ################################################################## -ARG CONFLUENCE_VERSION=7.11.2 +ARG CONFLUENCE_VERSION=7.13.0 ARG DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz ################################################################## diff --git a/linux/teamcity/agent/Dockerfile b/linux/teamcity/agent/latest/Dockerfile similarity index 100% rename from linux/teamcity/agent/Dockerfile rename to linux/teamcity/agent/latest/Dockerfile diff --git a/linux/teamcity/agent/Makefile b/linux/teamcity/agent/latest/Makefile similarity index 100% rename from linux/teamcity/agent/Makefile rename to linux/teamcity/agent/latest/Makefile diff --git a/linux/teamcity/agent/README.md b/linux/teamcity/agent/latest/README.md similarity index 100% rename from linux/teamcity/agent/README.md rename to linux/teamcity/agent/latest/README.md diff --git a/linux/teamcity/agent/docker-compose.yml b/linux/teamcity/agent/latest/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/docker-compose.yml rename to linux/teamcity/agent/latest/docker-compose.yml diff --git a/linux/teamcity/agent/run-agent.sh b/linux/teamcity/agent/latest/run-agent.sh similarity index 100% rename from linux/teamcity/agent/run-agent.sh rename to linux/teamcity/agent/latest/run-agent.sh diff --git a/linux/teamcity/agent/run-docker.sh b/linux/teamcity/agent/latest/run-docker.sh similarity index 100% rename from linux/teamcity/agent/run-docker.sh rename to linux/teamcity/agent/latest/run-docker.sh diff --git a/linux/teamcity/agent/run-services.sh b/linux/teamcity/agent/latest/run-services.sh similarity index 100% rename from linux/teamcity/agent/run-services.sh rename to linux/teamcity/agent/latest/run-services.sh diff --git a/linux/teamcity/agent/sources.sid.list b/linux/teamcity/agent/latest/sources.sid.list similarity index 100% rename from linux/teamcity/agent/sources.sid.list rename to linux/teamcity/agent/latest/sources.sid.list diff --git a/linux/teamcity/agent/node12/Dockerfile b/linux/teamcity/agent/node12/Dockerfile new file mode 100644 index 000000000..97432aad6 --- /dev/null +++ b/linux/teamcity/agent/node12/Dockerfile @@ -0,0 +1,73 @@ +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.d/ +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 + +################################################################## +# 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 && \ + npm install -g npm + +RUN node -v && \ + npm -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/teamcity/agent/node12/Makefile b/linux/teamcity/agent/node12/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/node12/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/node12/README.md b/linux/teamcity/agent/node12/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/node12/docker-compose.yml b/linux/teamcity/agent/node12/docker-compose.yml new file mode 100644 index 000000000..471281098 --- /dev/null +++ b/linux/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/teamcity/agent/node12/run-agent.sh b/linux/teamcity/agent/node12/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/teamcity/agent/node12/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/teamcity/agent/node12/run-services.sh b/linux/teamcity/agent/node12/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/teamcity/agent/node12/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/teamcity/agent/node12/sources.sid.list b/linux/teamcity/agent/node12/sources.sid.list new file mode 100644 index 000000000..d3d573cdc --- /dev/null +++ b/linux/teamcity/agent/node12/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/teamcity/agent/node14/Dockerfile b/linux/teamcity/agent/node14/Dockerfile new file mode 100644 index 000000000..ec0087f74 --- /dev/null +++ b/linux/teamcity/agent/node14/Dockerfile @@ -0,0 +1,73 @@ +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.d/ +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 + +################################################################## +# 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 && \ + npm install -g npm + +RUN node -v && \ + npm -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/teamcity/agent/node14/Makefile b/linux/teamcity/agent/node14/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/node14/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/node14/README.md b/linux/teamcity/agent/node14/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/node14/docker-compose.yml b/linux/teamcity/agent/node14/docker-compose.yml new file mode 100644 index 000000000..9dbd039a1 --- /dev/null +++ b/linux/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/teamcity/agent/node14/run-agent.sh b/linux/teamcity/agent/node14/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/teamcity/agent/node14/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/teamcity/agent/node14/run-services.sh b/linux/teamcity/agent/node14/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/teamcity/agent/node14/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/teamcity/agent/node14/sources.sid.list b/linux/teamcity/agent/node14/sources.sid.list new file mode 100644 index 000000000..d3d573cdc --- /dev/null +++ b/linux/teamcity/agent/node14/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/teamcity/agent/node15/Dockerfile b/linux/teamcity/agent/node15/Dockerfile new file mode 100644 index 000000000..dda7669f5 --- /dev/null +++ b/linux/teamcity/agent/node15/Dockerfile @@ -0,0 +1,73 @@ +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.d/ +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 + +################################################################## +# 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 && \ + npm install -g npm + +RUN node -v && \ + npm -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/teamcity/agent/node15/Makefile b/linux/teamcity/agent/node15/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/node15/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/node15/README.md b/linux/teamcity/agent/node15/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/node15/docker-compose.yml b/linux/teamcity/agent/node15/docker-compose.yml new file mode 100644 index 000000000..a1010e242 --- /dev/null +++ b/linux/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/teamcity/agent/node15/run-agent.sh b/linux/teamcity/agent/node15/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/teamcity/agent/node15/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/teamcity/agent/node15/run-services.sh b/linux/teamcity/agent/node15/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/teamcity/agent/node15/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/teamcity/agent/node15/sources.sid.list b/linux/teamcity/agent/node15/sources.sid.list new file mode 100644 index 000000000..d3d573cdc --- /dev/null +++ b/linux/teamcity/agent/node15/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/teamcity/agent/node16/Dockerfile b/linux/teamcity/agent/node16/Dockerfile new file mode 100644 index 000000000..7e6e722b5 --- /dev/null +++ b/linux/teamcity/agent/node16/Dockerfile @@ -0,0 +1,73 @@ +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.d/ +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 + +################################################################## +# 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 && \ + npm install -g npm + +RUN node -v && \ + npm -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/teamcity/agent/node16/Makefile b/linux/teamcity/agent/node16/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/node16/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/node16/README.md b/linux/teamcity/agent/node16/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/node16/docker-compose.yml b/linux/teamcity/agent/node16/docker-compose.yml new file mode 100644 index 000000000..a43bacda9 --- /dev/null +++ b/linux/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/teamcity/agent/node16/run-agent.sh b/linux/teamcity/agent/node16/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/linux/teamcity/agent/node16/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/teamcity/agent/node16/run-services.sh b/linux/teamcity/agent/node16/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/linux/teamcity/agent/node16/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/teamcity/agent/node16/sources.sid.list b/linux/teamcity/agent/node16/sources.sid.list new file mode 100644 index 000000000..d3d573cdc --- /dev/null +++ b/linux/teamcity/agent/node16/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 From 435e50ff6b1769c8c36916f527810f0e32f26380 Mon Sep 17 00:00:00 2001 From: STAM Date: Wed, 1 Sep 2021 16:39:06 +0300 Subject: [PATCH 086/144] support of ArekSredzki/electron-release-server --- CHANGELOG.md | 2 ++ linux/electron-release-server/Dockerfile | 27 +++++++++++++++++ linux/electron-release-server/Makefile | 5 ++++ .../docker-compose.yml | 6 ++++ .../docker-compose.yml.example | 29 +++++++++++++++++++ linux/epicmorg/prod/main/.selected_editor | 2 ++ linux/epicmorg/prod/main/Dockerfile | 9 +++++- linux/epicmorg/prod/main/mc.patch | 17 +++++++++++ 8 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 linux/electron-release-server/Dockerfile create mode 100644 linux/electron-release-server/Makefile create mode 100644 linux/electron-release-server/docker-compose.yml create mode 100644 linux/electron-release-server/docker-compose.yml.example create mode 100644 linux/epicmorg/prod/main/.selected_editor create mode 100644 linux/epicmorg/prod/main/mc.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index ae777e743..fdf9e0f6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## Changelog ### 2021 +* `september` + * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * `august` * splited `tc-agents` with `nodejs` * fixed `PostgreSQL` images diff --git a/linux/electron-release-server/Dockerfile b/linux/electron-release-server/Dockerfile new file mode 100644 index 000000000..ab0a477e7 --- /dev/null +++ b/linux/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/electron-release-server/Makefile b/linux/electron-release-server/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/electron-release-server/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/electron-release-server/docker-compose.yml b/linux/electron-release-server/docker-compose.yml new file mode 100644 index 000000000..0dfcc01c2 --- /dev/null +++ b/linux/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/electron-release-server/docker-compose.yml.example b/linux/electron-release-server/docker-compose.yml.example new file mode 100644 index 000000000..c28e81905 --- /dev/null +++ b/linux/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/prod/main/.selected_editor b/linux/epicmorg/prod/main/.selected_editor new file mode 100644 index 000000000..dbc007294 --- /dev/null +++ b/linux/epicmorg/prod/main/.selected_editor @@ -0,0 +1,2 @@ +# Generated by /usr/bin/select-editor +SELECTED_EDITOR="/usr/bin/mcedit" diff --git a/linux/epicmorg/prod/main/Dockerfile b/linux/epicmorg/prod/main/Dockerfile index db8e4b4a1..a7a9564eb 100644 --- a/linux/epicmorg/prod/main/Dockerfile +++ b/linux/epicmorg/prod/main/Dockerfile @@ -71,7 +71,6 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio tini \ tmux \ tree \ - ttf-dejavu \ util-linux \ uuid-runtime \ wget \ @@ -80,6 +79,13 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio chmod +x /usr/bin/p4 && \ openssl dhparam -out /etc/ssl/dhparam.pem 4096 +################################################################## +# Post-cosmetics +################################################################## +COPY ./.selected_editor /root/.selected_editor +COPY ./mc.patch /tmp/mc.patch +#RUN patch /tmp/mc.patch /root/.config/mc/ini + ################################################################## # cleaninig up ################################################################## @@ -87,4 +93,5 @@ 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 diff --git a/linux/epicmorg/prod/main/mc.patch b/linux/epicmorg/prod/main/mc.patch new file mode 100644 index 000000000..075948e1d --- /dev/null +++ b/linux/epicmorg/prod/main/mc.patch @@ -0,0 +1,17 @@ +86,88c86 +< skin=default +< +< filepos_max_saved_entries=1024 +--- +> skin=dark +109c107 +< display_codepage=ASCII +--- +> display_codepage=UTF-8 +132c130 +< navigate_with_arrows=false +--- +> navigate_with_arrows=true +140a139,140 +> +> simple_swap=false From bea9ce4c4a3a975777dadde07ca9054ef9a9343f Mon Sep 17 00:00:00 2001 From: STAM Date: Thu, 2 Sep 2021 13:38:37 +0300 Subject: [PATCH 087/144] TC Agent Node update --- linux/teamcity/agent/node12/Dockerfile | 13 +++++++++---- linux/teamcity/agent/node14/Dockerfile | 13 +++++++++---- linux/teamcity/agent/node15/Dockerfile | 13 +++++++++---- linux/teamcity/agent/node16/Dockerfile | 13 +++++++++---- 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/linux/teamcity/agent/node12/Dockerfile b/linux/teamcity/agent/node12/Dockerfile index 97432aad6..157c8959f 100644 --- a/linux/teamcity/agent/node12/Dockerfile +++ b/linux/teamcity/agent/node12/Dockerfile @@ -48,11 +48,16 @@ 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 && \ - npm install -g npm + apt-get install -y nodejs yarn -RUN node -v && \ - npm -v +# 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 diff --git a/linux/teamcity/agent/node14/Dockerfile b/linux/teamcity/agent/node14/Dockerfile index ec0087f74..a0035fd44 100644 --- a/linux/teamcity/agent/node14/Dockerfile +++ b/linux/teamcity/agent/node14/Dockerfile @@ -48,11 +48,16 @@ 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 && \ - npm install -g npm + apt-get install -y nodejs yarn -RUN node -v && \ - npm -v +# 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 diff --git a/linux/teamcity/agent/node15/Dockerfile b/linux/teamcity/agent/node15/Dockerfile index dda7669f5..cafcc8b30 100644 --- a/linux/teamcity/agent/node15/Dockerfile +++ b/linux/teamcity/agent/node15/Dockerfile @@ -48,11 +48,16 @@ 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 && \ - npm install -g npm + apt-get install -y nodejs yarn -RUN node -v && \ - npm -v +# 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 diff --git a/linux/teamcity/agent/node16/Dockerfile b/linux/teamcity/agent/node16/Dockerfile index 7e6e722b5..78eb6cbaf 100644 --- a/linux/teamcity/agent/node16/Dockerfile +++ b/linux/teamcity/agent/node16/Dockerfile @@ -48,11 +48,16 @@ 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 && \ - npm install -g npm + apt-get install -y nodejs yarn -RUN node -v && \ - npm -v +# 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 From 18c53a30ecfecbef1a5a2c4045db9d70b7045d2d Mon Sep 17 00:00:00 2001 From: Odmin Date: Tue, 21 Sep 2021 15:30:22 +0300 Subject: [PATCH 088/144] teamcity-agent --- CHANGELOG.md | 1 + linux/apache2/latest/Dockerfile | 2 +- linux/apache2/php7.2/Dockerfile | 2 +- linux/apache2/php7.3/Dockerfile | 2 +- linux/apache2/php7.4/Dockerfile | 2 +- linux/atlassian/bitbucket/latest/Dockerfile | 1 - linux/teamcity/agent/amxx-sdk/Dockerfile | 44 +++ linux/teamcity/agent/amxx-sdk/Makefile | 5 + linux/teamcity/agent/amxx-sdk/README.md | 93 ++++++ .../agent/amxx-sdk/docker-compose.yml | 6 + linux/teamcity/agent/android-sdk/Dockerfile | 49 +++ linux/teamcity/agent/android-sdk/Makefile | 5 + linux/teamcity/agent/android-sdk/README.md | 93 ++++++ .../agent/android-sdk/docker-compose.yml | 6 + linux/teamcity/agent/atlassian-sdk/Dockerfile | 36 +++ linux/teamcity/agent/atlassian-sdk/Makefile | 5 + linux/teamcity/agent/atlassian-sdk/README.md | 93 ++++++ .../agent/atlassian-sdk/docker-compose.yml | 6 + linux/teamcity/agent/dotnet-sdk/Dockerfile | 72 +++++ linux/teamcity/agent/dotnet-sdk/Makefile | 5 + linux/teamcity/agent/dotnet-sdk/README.md | 93 ++++++ .../agent/dotnet-sdk/docker-compose.yml | 6 + linux/teamcity/agent/latest/Dockerfile | 301 ------------------ linux/teamcity/agent/node12/Dockerfile | 45 +-- linux/teamcity/agent/node14/Dockerfile | 45 +-- linux/teamcity/agent/node15/Dockerfile | 45 +-- linux/teamcity/agent/node16/Dockerfile | 45 +-- linux/teamcity/agent/node16/run-agent.sh | 90 ------ linux/teamcity/agent/node16/run-services.sh | 15 - linux/teamcity/agent/node16/sources.sid.list | 7 - linux/teamcity/agent/php7.2/Dockerfile | 69 ++++ linux/teamcity/agent/php7.2/Makefile | 5 + linux/teamcity/agent/php7.2/README.md | 93 ++++++ .../teamcity/agent/php7.2/docker-compose.yml | 6 + .../agent/{node12 => php7.2}/run-agent.sh | 0 .../agent/{node12 => php7.2}/run-services.sh | 0 .../agent/{node12 => php7.2}/sources.sid.list | 0 linux/teamcity/agent/php7.3/Dockerfile | 69 ++++ linux/teamcity/agent/php7.3/Makefile | 5 + linux/teamcity/agent/php7.3/README.md | 93 ++++++ .../teamcity/agent/php7.3/docker-compose.yml | 6 + .../agent/{node14 => php7.3}/run-agent.sh | 0 .../agent/{node14 => php7.3}/run-services.sh | 0 .../agent/{node14 => php7.3}/sources.sid.list | 0 linux/teamcity/agent/php7.4/Dockerfile | 69 ++++ linux/teamcity/agent/php7.4/Makefile | 5 + linux/teamcity/agent/php7.4/README.md | 93 ++++++ .../teamcity/agent/php7.4/docker-compose.yml | 6 + .../agent/{node15 => php7.4}/run-agent.sh | 0 .../agent/{node15 => php7.4}/run-services.sh | 0 .../agent/{node15 => php7.4}/sources.sid.list | 0 linux/teamcity/agent/steam-sdk/Dockerfile | 31 ++ linux/teamcity/agent/steam-sdk/Makefile | 5 + linux/teamcity/agent/steam-sdk/README.md | 93 ++++++ .../agent/steam-sdk/docker-compose.yml | 6 + 55 files changed, 1280 insertions(+), 594 deletions(-) create mode 100644 linux/teamcity/agent/amxx-sdk/Dockerfile create mode 100644 linux/teamcity/agent/amxx-sdk/Makefile create mode 100644 linux/teamcity/agent/amxx-sdk/README.md create mode 100644 linux/teamcity/agent/amxx-sdk/docker-compose.yml create mode 100644 linux/teamcity/agent/android-sdk/Dockerfile create mode 100644 linux/teamcity/agent/android-sdk/Makefile create mode 100644 linux/teamcity/agent/android-sdk/README.md create mode 100644 linux/teamcity/agent/android-sdk/docker-compose.yml create mode 100644 linux/teamcity/agent/atlassian-sdk/Dockerfile create mode 100644 linux/teamcity/agent/atlassian-sdk/Makefile create mode 100644 linux/teamcity/agent/atlassian-sdk/README.md create mode 100644 linux/teamcity/agent/atlassian-sdk/docker-compose.yml create mode 100644 linux/teamcity/agent/dotnet-sdk/Dockerfile create mode 100644 linux/teamcity/agent/dotnet-sdk/Makefile create mode 100644 linux/teamcity/agent/dotnet-sdk/README.md create mode 100644 linux/teamcity/agent/dotnet-sdk/docker-compose.yml delete mode 100755 linux/teamcity/agent/node16/run-agent.sh delete mode 100755 linux/teamcity/agent/node16/run-services.sh delete mode 100644 linux/teamcity/agent/node16/sources.sid.list create mode 100644 linux/teamcity/agent/php7.2/Dockerfile create mode 100644 linux/teamcity/agent/php7.2/Makefile create mode 100644 linux/teamcity/agent/php7.2/README.md create mode 100644 linux/teamcity/agent/php7.2/docker-compose.yml rename linux/teamcity/agent/{node12 => php7.2}/run-agent.sh (100%) rename linux/teamcity/agent/{node12 => php7.2}/run-services.sh (100%) rename linux/teamcity/agent/{node12 => php7.2}/sources.sid.list (100%) create mode 100644 linux/teamcity/agent/php7.3/Dockerfile create mode 100644 linux/teamcity/agent/php7.3/Makefile create mode 100644 linux/teamcity/agent/php7.3/README.md create mode 100644 linux/teamcity/agent/php7.3/docker-compose.yml rename linux/teamcity/agent/{node14 => php7.3}/run-agent.sh (100%) rename linux/teamcity/agent/{node14 => php7.3}/run-services.sh (100%) rename linux/teamcity/agent/{node14 => php7.3}/sources.sid.list (100%) create mode 100644 linux/teamcity/agent/php7.4/Dockerfile create mode 100644 linux/teamcity/agent/php7.4/Makefile create mode 100644 linux/teamcity/agent/php7.4/README.md create mode 100644 linux/teamcity/agent/php7.4/docker-compose.yml rename linux/teamcity/agent/{node15 => php7.4}/run-agent.sh (100%) rename linux/teamcity/agent/{node15 => php7.4}/run-services.sh (100%) rename linux/teamcity/agent/{node15 => php7.4}/sources.sid.list (100%) create mode 100644 linux/teamcity/agent/steam-sdk/Dockerfile create mode 100644 linux/teamcity/agent/steam-sdk/Makefile create mode 100644 linux/teamcity/agent/steam-sdk/README.md create mode 100644 linux/teamcity/agent/steam-sdk/docker-compose.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index fdf9e0f6e..6d129449a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### 2021 * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. + * fully reworked `teamcity-agent` images. * `august` * splited `tc-agents` with `nodejs` * fixed `PostgreSQL` images diff --git a/linux/apache2/latest/Dockerfile b/linux/apache2/latest/Dockerfile index c7a49b75e..84c0d4992 100644 --- a/linux/apache2/latest/Dockerfile +++ b/linux/apache2/latest/Dockerfile @@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PH ################################################################## # Installing imagic addon ################################################################## -RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ php -m && \ php -v diff --git a/linux/apache2/php7.2/Dockerfile b/linux/apache2/php7.2/Dockerfile index d653289ec..8aef7209f 100644 --- a/linux/apache2/php7.2/Dockerfile +++ b/linux/apache2/php7.2/Dockerfile @@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PH ################################################################## # Installing imagic addon ################################################################## -RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ php -m && \ php -v diff --git a/linux/apache2/php7.3/Dockerfile b/linux/apache2/php7.3/Dockerfile index 4f71b5beb..add223407 100644 --- a/linux/apache2/php7.3/Dockerfile +++ b/linux/apache2/php7.3/Dockerfile @@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${P ################################################################## # Installing imagic addon ################################################################## -RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ php -m && \ php -v diff --git a/linux/apache2/php7.4/Dockerfile b/linux/apache2/php7.4/Dockerfile index c7a49b75e..84c0d4992 100644 --- a/linux/apache2/php7.4/Dockerfile +++ b/linux/apache2/php7.4/Dockerfile @@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PH ################################################################## # Installing imagic addon ################################################################## -RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ php -m && \ php -v diff --git a/linux/atlassian/bitbucket/latest/Dockerfile b/linux/atlassian/bitbucket/latest/Dockerfile index c21658472..abff7dcaa 100644 --- a/linux/atlassian/bitbucket/latest/Dockerfile +++ b/linux/atlassian/bitbucket/latest/Dockerfile @@ -32,7 +32,6 @@ 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 && \ diff --git a/linux/teamcity/agent/amxx-sdk/Dockerfile b/linux/teamcity/agent/amxx-sdk/Dockerfile new file mode 100644 index 000000000..037b06de6 --- /dev/null +++ b/linux/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/teamcity/agent/amxx-sdk/Makefile b/linux/teamcity/agent/amxx-sdk/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/amxx-sdk/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/amxx-sdk/README.md b/linux/teamcity/agent/amxx-sdk/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/teamcity/agent/amxx-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/teamcity/agent/amxx-sdk/docker-compose.yml b/linux/teamcity/agent/amxx-sdk/docker-compose.yml new file mode 100644 index 000000000..56589b790 --- /dev/null +++ b/linux/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/teamcity/agent/android-sdk/Dockerfile b/linux/teamcity/agent/android-sdk/Dockerfile new file mode 100644 index 000000000..f9c7f9e67 --- /dev/null +++ b/linux/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/teamcity/agent/android-sdk/Makefile b/linux/teamcity/agent/android-sdk/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/android-sdk/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/android-sdk/README.md b/linux/teamcity/agent/android-sdk/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/android-sdk/docker-compose.yml b/linux/teamcity/agent/android-sdk/docker-compose.yml new file mode 100644 index 000000000..dfb168a3a --- /dev/null +++ b/linux/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/teamcity/agent/atlassian-sdk/Dockerfile b/linux/teamcity/agent/atlassian-sdk/Dockerfile new file mode 100644 index 000000000..bb607345e --- /dev/null +++ b/linux/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/teamcity/agent/atlassian-sdk/Makefile b/linux/teamcity/agent/atlassian-sdk/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/atlassian-sdk/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/atlassian-sdk/README.md b/linux/teamcity/agent/atlassian-sdk/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/atlassian-sdk/docker-compose.yml b/linux/teamcity/agent/atlassian-sdk/docker-compose.yml new file mode 100644 index 000000000..4c05ddc93 --- /dev/null +++ b/linux/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/teamcity/agent/dotnet-sdk/Dockerfile b/linux/teamcity/agent/dotnet-sdk/Dockerfile new file mode 100644 index 000000000..91d2e5fa8 --- /dev/null +++ b/linux/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/teamcity/agent/dotnet-sdk/Makefile b/linux/teamcity/agent/dotnet-sdk/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/dotnet-sdk/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/dotnet-sdk/README.md b/linux/teamcity/agent/dotnet-sdk/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/dotnet-sdk/docker-compose.yml b/linux/teamcity/agent/dotnet-sdk/docker-compose.yml new file mode 100644 index 000000000..2009b3956 --- /dev/null +++ b/linux/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/teamcity/agent/latest/Dockerfile b/linux/teamcity/agent/latest/Dockerfile index 64cd400d8..91a721d13 100644 --- a/linux/teamcity/agent/latest/Dockerfile +++ b/linux/teamcity/agent/latest/Dockerfile @@ -1,18 +1,3 @@ -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 @@ -56,63 +41,6 @@ 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=\ - -# 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 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-preview -v && \ - pwsh -v - ################################################################## # teamcity docker setup ################################################################## @@ -146,235 +74,6 @@ RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/d 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' - -################################################################## -# 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-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 && \ - 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 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 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 && \ - npm install -g npm@7.19.1 - -################################################################## -# 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 ################################################################## diff --git a/linux/teamcity/agent/node12/Dockerfile b/linux/teamcity/agent/node12/Dockerfile index 157c8959f..3826e4e1b 100644 --- a/linux/teamcity/agent/node12/Dockerfile +++ b/linux/teamcity/agent/node12/Dockerfile @@ -1,46 +1,7 @@ -FROM epicmorg/devel:jdk11 +FROM epicmorg/teamcity-agent:latest 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.d/ -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 - ################################################################## # Node.js 12.x ################################################################## @@ -72,7 +33,3 @@ RUN apt clean -y && \ 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/node14/Dockerfile b/linux/teamcity/agent/node14/Dockerfile index a0035fd44..65fb1a3f7 100644 --- a/linux/teamcity/agent/node14/Dockerfile +++ b/linux/teamcity/agent/node14/Dockerfile @@ -1,46 +1,7 @@ -FROM epicmorg/devel:jdk11 +FROM epicmorg/teamcity-agent:latest 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.d/ -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 - ################################################################## # Node.js 14.x ################################################################## @@ -72,7 +33,3 @@ RUN apt clean -y && \ 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/node15/Dockerfile b/linux/teamcity/agent/node15/Dockerfile index cafcc8b30..454dfb82f 100644 --- a/linux/teamcity/agent/node15/Dockerfile +++ b/linux/teamcity/agent/node15/Dockerfile @@ -1,46 +1,7 @@ -FROM epicmorg/devel:jdk11 +FROM epicmorg/teamcity-agent:latest 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.d/ -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 - ################################################################## # Node.js 15.x ################################################################## @@ -72,7 +33,3 @@ RUN apt clean -y && \ 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/node16/Dockerfile b/linux/teamcity/agent/node16/Dockerfile index 78eb6cbaf..477a8a954 100644 --- a/linux/teamcity/agent/node16/Dockerfile +++ b/linux/teamcity/agent/node16/Dockerfile @@ -1,46 +1,7 @@ -FROM epicmorg/devel:jdk11 +FROM epicmorg/teamcity-agent:latest 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.d/ -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 - ################################################################## # Node.js 16.x ################################################################## @@ -72,7 +33,3 @@ RUN apt clean -y && \ 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/node16/run-agent.sh b/linux/teamcity/agent/node16/run-agent.sh deleted file mode 100755 index a9ded1d14..000000000 --- a/linux/teamcity/agent/node16/run-agent.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/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/teamcity/agent/node16/run-services.sh b/linux/teamcity/agent/node16/run-services.sh deleted file mode 100755 index a574dd68a..000000000 --- a/linux/teamcity/agent/node16/run-services.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/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/teamcity/agent/node16/sources.sid.list b/linux/teamcity/agent/node16/sources.sid.list deleted file mode 100644 index d3d573cdc..000000000 --- a/linux/teamcity/agent/node16/sources.sid.list +++ /dev/null @@ -1,7 +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 - -##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/teamcity/agent/php7.2/Dockerfile b/linux/teamcity/agent/php7.2/Dockerfile new file mode 100644 index 000000000..d422b91eb --- /dev/null +++ b/linux/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/teamcity/agent/php7.2/Makefile b/linux/teamcity/agent/php7.2/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/php7.2/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/php7.2/README.md b/linux/teamcity/agent/php7.2/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/php7.2/docker-compose.yml b/linux/teamcity/agent/php7.2/docker-compose.yml new file mode 100644 index 000000000..4e8b33651 --- /dev/null +++ b/linux/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/teamcity/agent/node12/run-agent.sh b/linux/teamcity/agent/php7.2/run-agent.sh similarity index 100% rename from linux/teamcity/agent/node12/run-agent.sh rename to linux/teamcity/agent/php7.2/run-agent.sh diff --git a/linux/teamcity/agent/node12/run-services.sh b/linux/teamcity/agent/php7.2/run-services.sh similarity index 100% rename from linux/teamcity/agent/node12/run-services.sh rename to linux/teamcity/agent/php7.2/run-services.sh diff --git a/linux/teamcity/agent/node12/sources.sid.list b/linux/teamcity/agent/php7.2/sources.sid.list similarity index 100% rename from linux/teamcity/agent/node12/sources.sid.list rename to linux/teamcity/agent/php7.2/sources.sid.list diff --git a/linux/teamcity/agent/php7.3/Dockerfile b/linux/teamcity/agent/php7.3/Dockerfile new file mode 100644 index 000000000..849305b65 --- /dev/null +++ b/linux/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/teamcity/agent/php7.3/Makefile b/linux/teamcity/agent/php7.3/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/php7.3/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/php7.3/README.md b/linux/teamcity/agent/php7.3/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/php7.3/docker-compose.yml b/linux/teamcity/agent/php7.3/docker-compose.yml new file mode 100644 index 000000000..09fb563d3 --- /dev/null +++ b/linux/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/teamcity/agent/node14/run-agent.sh b/linux/teamcity/agent/php7.3/run-agent.sh similarity index 100% rename from linux/teamcity/agent/node14/run-agent.sh rename to linux/teamcity/agent/php7.3/run-agent.sh diff --git a/linux/teamcity/agent/node14/run-services.sh b/linux/teamcity/agent/php7.3/run-services.sh similarity index 100% rename from linux/teamcity/agent/node14/run-services.sh rename to linux/teamcity/agent/php7.3/run-services.sh diff --git a/linux/teamcity/agent/node14/sources.sid.list b/linux/teamcity/agent/php7.3/sources.sid.list similarity index 100% rename from linux/teamcity/agent/node14/sources.sid.list rename to linux/teamcity/agent/php7.3/sources.sid.list diff --git a/linux/teamcity/agent/php7.4/Dockerfile b/linux/teamcity/agent/php7.4/Dockerfile new file mode 100644 index 000000000..c14d44bc6 --- /dev/null +++ b/linux/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/teamcity/agent/php7.4/Makefile b/linux/teamcity/agent/php7.4/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/php7.4/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/php7.4/README.md b/linux/teamcity/agent/php7.4/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/php7.4/docker-compose.yml b/linux/teamcity/agent/php7.4/docker-compose.yml new file mode 100644 index 000000000..0a62dec5d --- /dev/null +++ b/linux/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/teamcity/agent/node15/run-agent.sh b/linux/teamcity/agent/php7.4/run-agent.sh similarity index 100% rename from linux/teamcity/agent/node15/run-agent.sh rename to linux/teamcity/agent/php7.4/run-agent.sh diff --git a/linux/teamcity/agent/node15/run-services.sh b/linux/teamcity/agent/php7.4/run-services.sh similarity index 100% rename from linux/teamcity/agent/node15/run-services.sh rename to linux/teamcity/agent/php7.4/run-services.sh diff --git a/linux/teamcity/agent/node15/sources.sid.list b/linux/teamcity/agent/php7.4/sources.sid.list similarity index 100% rename from linux/teamcity/agent/node15/sources.sid.list rename to linux/teamcity/agent/php7.4/sources.sid.list diff --git a/linux/teamcity/agent/steam-sdk/Dockerfile b/linux/teamcity/agent/steam-sdk/Dockerfile new file mode 100644 index 000000000..3dba5e452 --- /dev/null +++ b/linux/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/teamcity/agent/steam-sdk/Makefile b/linux/teamcity/agent/steam-sdk/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/teamcity/agent/steam-sdk/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/teamcity/agent/steam-sdk/README.md b/linux/teamcity/agent/steam-sdk/README.md new file mode 100644 index 000000000..b53fe01e8 --- /dev/null +++ b/linux/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/teamcity/agent/steam-sdk/docker-compose.yml b/linux/teamcity/agent/steam-sdk/docker-compose.yml new file mode 100644 index 000000000..f0880a11a --- /dev/null +++ b/linux/teamcity/agent/steam-sdk/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/teamcity-agent:steam-sdk" + build: + context: . From e535ec2bfe3cb6aacef7bfb93d02cb11e47dfcf4 Mon Sep 17 00:00:00 2001 From: Odmin Date: Tue, 21 Sep 2021 15:38:17 +0300 Subject: [PATCH 089/144] revert some things --- linux/apache2/latest/Dockerfile | 2 +- linux/apache2/php7.2/Dockerfile | 2 +- linux/apache2/php7.3/Dockerfile | 2 +- linux/apache2/php7.4/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/linux/apache2/latest/Dockerfile b/linux/apache2/latest/Dockerfile index 84c0d4992..c7a49b75e 100644 --- a/linux/apache2/latest/Dockerfile +++ b/linux/apache2/latest/Dockerfile @@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PH ################################################################## # Installing imagic addon ################################################################## -RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ php -m && \ php -v diff --git a/linux/apache2/php7.2/Dockerfile b/linux/apache2/php7.2/Dockerfile index 8aef7209f..d653289ec 100644 --- a/linux/apache2/php7.2/Dockerfile +++ b/linux/apache2/php7.2/Dockerfile @@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PH ################################################################## # Installing imagic addon ################################################################## -RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ php -m && \ php -v diff --git a/linux/apache2/php7.3/Dockerfile b/linux/apache2/php7.3/Dockerfile index add223407..4f71b5beb 100644 --- a/linux/apache2/php7.3/Dockerfile +++ b/linux/apache2/php7.3/Dockerfile @@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${P ################################################################## # Installing imagic addon ################################################################## -RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ php -m && \ php -v diff --git a/linux/apache2/php7.4/Dockerfile b/linux/apache2/php7.4/Dockerfile index 84c0d4992..c7a49b75e 100644 --- a/linux/apache2/php7.4/Dockerfile +++ b/linux/apache2/php7.4/Dockerfile @@ -62,7 +62,7 @@ RUN echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.4.so" >> ${PH ################################################################## # Installing imagic addon ################################################################## -RUN echo "extension = imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ +RUN echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \ php -m && \ php -v From 3d41e1f6a7efeb56661550cf3f9ff70a6178abd1 Mon Sep 17 00:00:00 2001 From: Odmin Date: Tue, 21 Sep 2021 18:33:18 +0300 Subject: [PATCH 090/144] java16; revert some changes --- CHANGELOG.md | 1 + linux/epicmorg/devel/jdk16/Dockerfile | 24 ++++++++ linux/epicmorg/devel/jdk16/Makefile | 5 ++ linux/epicmorg/devel/jdk16/docker-compose.yml | 6 ++ linux/epicmorg/edge/jdk16/Dockerfile | 24 ++++++++ linux/epicmorg/edge/jdk16/Makefile | 5 ++ linux/epicmorg/edge/jdk16/docker-compose.yml | 6 ++ linux/epicmorg/prod/jdk16/Dockerfile | 23 ++++++++ linux/epicmorg/prod/jdk16/Makefile | 5 ++ linux/epicmorg/prod/jdk16/docker-compose.yml | 6 ++ linux/epicmorg/prod/main/.selected_editor | 2 - linux/epicmorg/prod/main/Dockerfile | 59 +++++++++++++++---- linux/epicmorg/prod/main/mc.patch | 17 ------ 13 files changed, 152 insertions(+), 31 deletions(-) create mode 100644 linux/epicmorg/devel/jdk16/Dockerfile create mode 100644 linux/epicmorg/devel/jdk16/Makefile create mode 100644 linux/epicmorg/devel/jdk16/docker-compose.yml create mode 100644 linux/epicmorg/edge/jdk16/Dockerfile create mode 100644 linux/epicmorg/edge/jdk16/Makefile create mode 100644 linux/epicmorg/edge/jdk16/docker-compose.yml create mode 100644 linux/epicmorg/prod/jdk16/Dockerfile create mode 100644 linux/epicmorg/prod/jdk16/Makefile create mode 100644 linux/epicmorg/prod/jdk16/docker-compose.yml delete mode 100644 linux/epicmorg/prod/main/.selected_editor delete mode 100644 linux/epicmorg/prod/main/mc.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d129449a..91b16b923 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ * `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. * `august` * splited `tc-agents` with `nodejs` * fixed `PostgreSQL` images diff --git a/linux/epicmorg/devel/jdk16/Dockerfile b/linux/epicmorg/devel/jdk16/Dockerfile new file mode 100644 index 000000000..18a382df5 --- /dev/null +++ b/linux/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/epicmorg/devel/jdk16/Makefile b/linux/epicmorg/devel/jdk16/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/epicmorg/devel/jdk16/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/devel/jdk16/docker-compose.yml b/linux/epicmorg/devel/jdk16/docker-compose.yml new file mode 100644 index 000000000..d72619833 --- /dev/null +++ b/linux/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/edge/jdk16/Dockerfile b/linux/epicmorg/edge/jdk16/Dockerfile new file mode 100644 index 000000000..9b8a6ec8b --- /dev/null +++ b/linux/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/epicmorg/edge/jdk16/Makefile b/linux/epicmorg/edge/jdk16/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/epicmorg/edge/jdk16/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/edge/jdk16/docker-compose.yml b/linux/epicmorg/edge/jdk16/docker-compose.yml new file mode 100644 index 000000000..7945ea454 --- /dev/null +++ b/linux/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/prod/jdk16/Dockerfile b/linux/epicmorg/prod/jdk16/Dockerfile new file mode 100644 index 000000000..dbe7f1aaa --- /dev/null +++ b/linux/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/epicmorg/prod/jdk16/Makefile b/linux/epicmorg/prod/jdk16/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/epicmorg/prod/jdk16/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push diff --git a/linux/epicmorg/prod/jdk16/docker-compose.yml b/linux/epicmorg/prod/jdk16/docker-compose.yml new file mode 100644 index 000000000..4d284744c --- /dev/null +++ b/linux/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/main/.selected_editor b/linux/epicmorg/prod/main/.selected_editor deleted file mode 100644 index dbc007294..000000000 --- a/linux/epicmorg/prod/main/.selected_editor +++ /dev/null @@ -1,2 +0,0 @@ -# Generated by /usr/bin/select-editor -SELECTED_EDITOR="/usr/bin/mcedit" diff --git a/linux/epicmorg/prod/main/Dockerfile b/linux/epicmorg/prod/main/Dockerfile index a7a9564eb..e849863c1 100644 --- a/linux/epicmorg/prod/main/Dockerfile +++ b/linux/epicmorg/prod/main/Dockerfile @@ -15,8 +15,14 @@ RUN for i in $(seq 1 8); do mkdir -p "/usr/share/man/man${i}"; done ################################################################## # perforce client binary ################################################################## -ARG P4_VERSION=r21.1 -ARG P4_DOWNLOAD_URL=http://www.perforce.com/downloads/perforce/${P4_VERSION}/bin.linux26x86_64/p4 +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 @@ -29,12 +35,14 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio aptitude \ bash \ binutils \ + bzip2 \ ca-certificates \ cmatrix \ cmatrix-xfont \ console-cyrillic \ cron \ curl \ + clzip \ dos2unix \ ffmpeg \ fontconfig \ @@ -42,17 +50,24 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio gnupg \ gnupg2 \ graphicsmagick \ + gzip \ htop \ iftop \ iputils-ping \ jq \ kmod \ + libxml2-dev \ + libxml2-utils \ + lbzip2 \ libsvn-java \ - libzip4 \ locales \ lsb-release \ lsof \ lynx \ + lzma \ + libzip4 \ + lzip \ + lzop \ mc \ mercurial \ nano \ @@ -61,7 +76,12 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio openssl \ perl \ procps \ + pbzip2 \ + plzip \ + p7zip-full \ + p7zip-rar \ rsync \ + rar \ screenfetch \ smbclient \ software-properties-common \ @@ -73,18 +93,32 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio tree \ util-linux \ uuid-runtime \ + unrar \ + xz-utils \ 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 + 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 ################################################################## -# Post-cosmetics +# Generate ssl key ################################################################## -COPY ./.selected_editor /root/.selected_editor -COPY ./mc.patch /tmp/mc.patch -#RUN patch /tmp/mc.patch /root/.config/mc/ini +RUN openssl dhparam -out /etc/ssl/dhparam.pem 4096 ################################################################## # cleaninig up @@ -94,4 +128,5 @@ RUN apt purge policykit-1 -y && \ apt autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /tmp/mc.patch && \ - rm -rfv /var/cache/apt/archives/*.deb + rm -rfv /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/7z diff --git a/linux/epicmorg/prod/main/mc.patch b/linux/epicmorg/prod/main/mc.patch deleted file mode 100644 index 075948e1d..000000000 --- a/linux/epicmorg/prod/main/mc.patch +++ /dev/null @@ -1,17 +0,0 @@ -86,88c86 -< skin=default -< -< filepos_max_saved_entries=1024 ---- -> skin=dark -109c107 -< display_codepage=ASCII ---- -> display_codepage=UTF-8 -132c130 -< navigate_with_arrows=false ---- -> navigate_with_arrows=true -140a139,140 -> -> simple_swap=false From bfc0c5d2bc279a21bb67c7aabaae479a2ff7f35c Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 19:51:34 +0300 Subject: [PATCH 091/144] Create DESCRIPTION.md --- DESCRIPTION.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 DESCRIPTION.md diff --git a/DESCRIPTION.md b/DESCRIPTION.md new file mode 100644 index 000000000..a218fb8d2 --- /dev/null +++ b/DESCRIPTION.md @@ -0,0 +1,52 @@ +# [![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) + +![](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) From f3c0166bb6c1c0a57024b4261cbd794b33380511 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 20:12:58 +0300 Subject: [PATCH 092/144] Update README.md --- README.md | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index a218fb8d2..f79bfd346 100644 --- a/README.md +++ b/README.md @@ -5,39 +5,23 @@ | [![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 different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem` and supports `linux86_64` and `win64` docker engenies. + +* At `linux/advanced` folder placed improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. This images just forked from original developers and few reworked. +* In `linux/ecosystem` placed 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) | | - -# 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/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) From 7007d7cbf01d86bd4ae43205328c99b0d321efa2 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 20:13:22 +0300 Subject: [PATCH 093/144] Update DESCRIPTION.md --- DESCRIPTION.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DESCRIPTION.md b/DESCRIPTION.md index a218fb8d2..da8d56b53 100644 --- a/DESCRIPTION.md +++ b/DESCRIPTION.md @@ -5,6 +5,12 @@ | [![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 different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem` and supports `linux86_64` and `win64` docker engenies. + +* At `linux/advanced` folder placed improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. This images just forked from original developers and few reworked. +* In `linux/ecosystem` placed 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 From 76cc11fd20c547d3502f1848bb0e899d0baaf6c4 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 20:16:28 +0300 Subject: [PATCH 094/144] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f79bfd346..0483bdbe0 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ | [![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 different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem` and supports `linux86_64` and `win64` docker engenies. +A collection of different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We are support `linux86_64` docker engine (`win64` still in testing). * At `linux/advanced` folder placed improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. This images just forked from original developers and few reworked. * In `linux/ecosystem` placed images developed by our team like full `Atlassian Stack`, compilled `nginx`, `php`, `testrail` and othres. From bf581aeb66b4d844a4c3245d15ffde84e9487d29 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 20:16:40 +0300 Subject: [PATCH 095/144] Update DESCRIPTION.md --- DESCRIPTION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION.md b/DESCRIPTION.md index da8d56b53..ca35ace2b 100644 --- a/DESCRIPTION.md +++ b/DESCRIPTION.md @@ -6,7 +6,7 @@ | [![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 different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem` and supports `linux86_64` and `win64` docker engenies. +A collection of different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We are support `linux86_64` docker engine (`win64` still in testing). * At `linux/advanced` folder placed improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. This images just forked from original developers and few reworked. * In `linux/ecosystem` placed images developed by our team like full `Atlassian Stack`, compilled `nginx`, `php`, `testrail` and othres. From a6f9c16f69a3eb94a1772af05a85eb5b50fbb6ff Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 20:20:03 +0300 Subject: [PATCH 096/144] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0483bdbe0..a49bedb63 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ | [![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 different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We are support `linux86_64` docker engine (`win64` still in testing). +A collection of different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We are support `linux x86_64` docker engine (`Win64` still in testing). * At `linux/advanced` folder placed improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. This images just forked from original developers and few reworked. * In `linux/ecosystem` placed images developed by our team like full `Atlassian Stack`, compilled `nginx`, `php`, `testrail` and othres. From 00f3ef01ffac1db9f88bbdbbd344e7d26c9db70f Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 20:20:15 +0300 Subject: [PATCH 097/144] Update DESCRIPTION.md --- DESCRIPTION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION.md b/DESCRIPTION.md index ca35ace2b..3f93db832 100644 --- a/DESCRIPTION.md +++ b/DESCRIPTION.md @@ -6,7 +6,7 @@ | [![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 different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We are support `linux86_64` docker engine (`win64` still in testing). +A collection of different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We are support `linux x86_64` docker engine (`Win64` still in testing). * At `linux/advanced` folder placed improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. This images just forked from original developers and few reworked. * In `linux/ecosystem` placed images developed by our team like full `Atlassian Stack`, compilled `nginx`, `php`, `testrail` and othres. From 8eb1a17335daa271cf282dd0cad0000efda342de Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 20:28:20 +0300 Subject: [PATCH 098/144] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91b16b923..1c4e883cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * 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. * `august` * splited `tc-agents` with `nodejs` * fixed `PostgreSQL` images From 8e06cea0ddbf9aa029a640f685365767d12f343a Mon Sep 17 00:00:00 2001 From: Odmin Date: Tue, 21 Sep 2021 20:44:37 +0300 Subject: [PATCH 099/144] folders --- bin/make-all-epicmorg-based.sh | 128 ++++++++++-------- bin/make-all-third-party.sh | 34 ++--- .../mattermost/latest/Dockerfile | 0 .../mattermost}/latest/Makefile | 0 .../mattermost/latest/docker-compose.yml | 0 .../{ => advanced}/mattermost/latest/edit.py | 0 linux/{ => advanced}/nextcloud/14/Dockerfile | 0 .../php7.2 => advanced/nextcloud/14}/Makefile | 0 linux/{ => advanced}/nextcloud/14/README.md | 0 .../{ => advanced}/nextcloud/14/Streamer.php | 0 .../nextcloud/14/docker-compose.yml | 0 linux/{ => advanced}/nextcloud/14/smb.conf | 0 linux/advanced/nextcloud/14/sources.list | 19 +++ linux/{ => advanced}/nextcloud/15/Dockerfile | 0 .../php7.3 => advanced/nextcloud/15}/Makefile | 0 linux/{ => advanced}/nextcloud/15/README.md | 0 .../{ => advanced}/nextcloud/15/Streamer.php | 0 .../nextcloud/15/docker-compose.yml | 0 linux/{ => advanced}/nextcloud/15/smb.conf | 0 linux/advanced/nextcloud/15/sources.list | 19 +++ linux/{ => advanced}/nextcloud/16/Dockerfile | 0 .../php7.4 => advanced/nextcloud/16}/Makefile | 0 linux/{ => advanced}/nextcloud/16/README.md | 0 .../{ => advanced}/nextcloud/16/Streamer.php | 0 .../nextcloud/16/docker-compose.yml | 0 linux/{ => advanced}/nextcloud/16/smb.conf | 0 linux/advanced/nextcloud/16/sources.list | 19 +++ linux/{ => advanced}/nextcloud/17/Dockerfile | 0 .../6.0.1 => advanced/nextcloud/17}/Makefile | 0 linux/{ => advanced}/nextcloud/17/README.md | 0 .../{ => advanced}/nextcloud/17/Streamer.php | 0 .../nextcloud/17/docker-compose.yml | 0 linux/{ => advanced}/nextcloud/17/smb.conf | 0 linux/advanced/nextcloud/17/sources.list | 19 +++ linux/{ => advanced}/nextcloud/18/Dockerfile | 0 .../6.0.2 => advanced/nextcloud/18}/Makefile | 0 linux/{ => advanced}/nextcloud/18/README.md | 0 .../{ => advanced}/nextcloud/18/Streamer.php | 0 .../nextcloud/18/docker-compose.yml | 0 linux/{ => advanced}/nextcloud/18/smb.conf | 0 linux/advanced/nextcloud/18/sources.list | 19 +++ linux/{ => advanced}/nextcloud/19/Dockerfile | 0 .../6.0.3 => advanced/nextcloud/19}/Makefile | 0 linux/{ => advanced}/nextcloud/19/README.md | 0 .../{ => advanced}/nextcloud/19/Streamer.php | 0 .../nextcloud/19/docker-compose.yml | 0 linux/{ => advanced}/nextcloud/19/smb.conf | 0 linux/advanced/nextcloud/19/sources.list | 19 +++ linux/{ => advanced}/nextcloud/20/Dockerfile | 0 .../6.0.4 => advanced/nextcloud/20}/Makefile | 0 linux/{ => advanced}/nextcloud/20/README.md | 0 .../{ => advanced}/nextcloud/20/Streamer.php | 0 .../nextcloud/20/docker-compose.yml | 0 linux/{ => advanced}/nextcloud/20/smb.conf | 0 linux/advanced/nextcloud/20/sources.list | 19 +++ linux/{ => advanced}/nextcloud/21/Dockerfile | 0 .../6.0.5 => advanced/nextcloud/21}/Makefile | 0 linux/{ => advanced}/nextcloud/21/README.md | 0 .../{ => advanced}/nextcloud/21/Streamer.php | 0 .../nextcloud/21/docker-compose.yml | 0 linux/{ => advanced}/nextcloud/21/smb.conf | 0 linux/advanced/nextcloud/21/sources.list | 19 +++ linux/{ => advanced}/nextcloud/22/Dockerfile | 0 .../6.0.6 => advanced/nextcloud/22}/Makefile | 0 linux/{ => advanced}/nextcloud/22/README.md | 0 .../{ => advanced}/nextcloud/22/Streamer.php | 0 .../nextcloud/22/docker-compose.yml | 0 linux/{ => advanced}/nextcloud/22/smb.conf | 0 linux/advanced/nextcloud/22/sources.list | 19 +++ linux/{ => advanced}/nextcloud/README.md | 0 .../nextcloud/latest/Dockerfile | 0 .../nextcloud/latest}/Makefile | 0 .../{ => advanced}/nextcloud/latest/README.md | 0 .../nextcloud/latest/Streamer.php | 0 .../nextcloud/latest/docker-compose.yml | 0 .../{ => advanced}/nextcloud/latest/smb.conf | 0 linux/advanced/nextcloud/latest/sources.list | 19 +++ linux/{ => advanced}/teamcity/README.md | 0 .../{ => advanced}/teamcity/server/Dockerfile | 0 .../teamcity/server}/Makefile | 0 .../{ => advanced}/teamcity/server/README.md | 0 .../teamcity/server/docker-compose.yml | 0 .../teamcity/server}/locale.gen | 0 .../teamcity/server}/locale.gen.full | 0 .../teamcity/server/sources.list | 0 linux/{ => advanced}/zabbix/agent/Dockerfile | 0 .../6.1.1 => advanced/zabbix/agent}/Makefile | 0 linux/{ => advanced}/zabbix/agent/README.md | 0 .../zabbix/agent/docker-compose.yml | 0 .../zabbix/agent}/locale.gen | 0 .../zabbix/agent}/locale.gen.full | 0 .../{ => advanced}/zabbix/agent/sources.list | 0 .../zabbix/java-gateway/Dockerfile | 0 .../zabbix/java-gateway}/Makefile | 0 .../zabbix/java-gateway/README.md | 0 .../zabbix/java-gateway/docker-compose.yml | 0 .../zabbix/java-gateway}/locale.gen | 0 .../zabbix/java-gateway}/locale.gen.full | 0 .../zabbix/java-gateway/sources.list | 0 linux/{ => advanced}/zabbix/proxy/Dockerfile | 0 .../6.1.3 => advanced/zabbix/proxy}/Makefile | 0 linux/{ => advanced}/zabbix/proxy/README.md | 0 .../zabbix/proxy/docker-compose.yml | 0 .../zabbix/proxy}/locale.gen | 0 .../zabbix/proxy}/locale.gen.full | 0 .../{ => advanced}/zabbix/proxy/sources.list | 0 linux/{ => advanced}/zabbix/server/Dockerfile | 0 .../6.1.4 => advanced/zabbix/server}/Makefile | 0 linux/{ => advanced}/zabbix/server/README.md | 0 .../zabbix/server/docker-compose.yml | 0 .../zabbix/server}/locale.gen | 0 .../zabbix/server}/locale.gen.full | 0 .../{ => advanced}/zabbix/server/sources.list | 0 linux/{ => advanced}/zabbix/web/Dockerfile | 0 .../6/6.10.0 => advanced/zabbix/web}/Makefile | 0 linux/{ => advanced}/zabbix/web/README.md | 0 .../zabbix/web/docker-compose.yml | 0 .../server => advanced/zabbix/web}/locale.gen | 0 .../zabbix/web}/locale.gen.full | 0 linux/{ => advanced}/zabbix/web/sources.list | 0 .../{ => ecosystem}/apache2/latest/Dockerfile | 0 .../apache2/latest}/Makefile | 0 .../{ => ecosystem}/apache2/latest/README.md | 0 .../apache2/latest/docker-compose.yml | 0 linux/{ => ecosystem}/apache2/latest/run.sh | 0 .../{ => ecosystem}/apache2/php7.2/Dockerfile | 0 .../apache2/php7.2}/Makefile | 0 .../{ => ecosystem}/apache2/php7.2/README.md | 0 .../apache2/php7.2/docker-compose.yml | 0 linux/{ => ecosystem}/apache2/php7.2/run.sh | 0 .../{ => ecosystem}/apache2/php7.3/Dockerfile | 0 .../apache2/php7.3}/Makefile | 0 .../{ => ecosystem}/apache2/php7.3/README.md | 0 .../apache2/php7.3/docker-compose.yml | 0 linux/{ => ecosystem}/apache2/php7.3/run.sh | 0 .../{ => ecosystem}/apache2/php7.4/Dockerfile | 0 .../apache2/php7.4}/Makefile | 0 .../{ => ecosystem}/apache2/php7.4/README.md | 0 .../apache2/php7.4/docker-compose.yml | 0 linux/{ => ecosystem}/apache2/php7.4/run.sh | 0 .../atlassian/bitbucket/6/6.0.0/Dockerfile | 0 .../bitbucket/6/6.0.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.0/Makefile | 0 .../atlassian/bitbucket/6/6.0.0/README.md | 0 .../atlassian/bitbucket/6/6.0.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.1/Dockerfile | 0 .../bitbucket/6/6.0.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.1/Makefile | 0 .../atlassian/bitbucket/6/6.0.1/README.md | 0 .../atlassian/bitbucket/6/6.0.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.10/Dockerfile | 0 .../bitbucket/6/6.0.10/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.10/Makefile | 0 .../atlassian/bitbucket/6/6.0.10/README.md | 0 .../bitbucket/6/6.0.10/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.11/Dockerfile | 0 .../bitbucket/6/6.0.11/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.11/Makefile | 0 .../atlassian/bitbucket/6/6.0.11/README.md | 0 .../bitbucket/6/6.0.11/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.2/Dockerfile | 0 .../bitbucket/6/6.0.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.2/Makefile | 0 .../atlassian/bitbucket/6/6.0.2/README.md | 0 .../atlassian/bitbucket/6/6.0.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.3/Dockerfile | 0 .../bitbucket/6/6.0.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.3/Makefile | 0 .../atlassian/bitbucket/6/6.0.3/README.md | 0 .../atlassian/bitbucket/6/6.0.3/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.4/Dockerfile | 0 .../bitbucket/6/6.0.4/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.4/Makefile | 0 .../atlassian/bitbucket/6/6.0.4/README.md | 0 .../atlassian/bitbucket/6/6.0.4/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.5/Dockerfile | 0 .../bitbucket/6/6.0.5/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.5/Makefile | 0 .../atlassian/bitbucket/6/6.0.5/README.md | 0 .../atlassian/bitbucket/6/6.0.5/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.6/Dockerfile | 0 .../bitbucket/6/6.0.6/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.6/Makefile | 0 .../atlassian/bitbucket/6/6.0.6/README.md | 0 .../atlassian/bitbucket/6/6.0.6/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.7/Dockerfile | 0 .../bitbucket/6/6.0.7/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.7/Makefile | 0 .../atlassian/bitbucket/6/6.0.7/README.md | 0 .../atlassian/bitbucket/6/6.0.7/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.0.9/Dockerfile | 0 .../bitbucket/6/6.0.9/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.0.9/Makefile | 0 .../atlassian/bitbucket/6/6.0.9/README.md | 0 .../atlassian/bitbucket/6/6.0.9/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.0/Dockerfile | 0 .../bitbucket/6/6.1.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.0/Makefile | 0 .../atlassian/bitbucket/6/6.1.0/README.md | 0 .../atlassian/bitbucket/6/6.1.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.1/Dockerfile | 0 .../bitbucket/6/6.1.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.1/Makefile | 0 .../atlassian/bitbucket/6/6.1.1/README.md | 0 .../atlassian/bitbucket/6/6.1.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.2/Dockerfile | 0 .../bitbucket/6/6.1.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.2/Makefile | 0 .../atlassian/bitbucket/6/6.1.2/README.md | 0 .../atlassian/bitbucket/6/6.1.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.3/Dockerfile | 0 .../bitbucket/6/6.1.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.3/Makefile | 0 .../atlassian/bitbucket/6/6.1.3/README.md | 0 .../atlassian/bitbucket/6/6.1.3/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.4/Dockerfile | 0 .../bitbucket/6/6.1.4/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.4/Makefile | 0 .../atlassian/bitbucket/6/6.1.4/README.md | 0 .../atlassian/bitbucket/6/6.1.4/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.5/Dockerfile | 0 .../bitbucket/6/6.1.5/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.5/Makefile | 0 .../atlassian/bitbucket/6/6.1.5/README.md | 0 .../atlassian/bitbucket/6/6.1.5/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.6/Dockerfile | 0 .../bitbucket/6/6.1.6/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.6/Makefile | 0 .../atlassian/bitbucket/6/6.1.6/README.md | 0 .../atlassian/bitbucket/6/6.1.6/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.7/Dockerfile | 0 .../bitbucket/6/6.1.7/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.7/Makefile | 0 .../atlassian/bitbucket/6/6.1.7/README.md | 0 .../atlassian/bitbucket/6/6.1.7/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.8/Dockerfile | 0 .../bitbucket/6/6.1.8/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.8/Makefile | 0 .../atlassian/bitbucket/6/6.1.8/README.md | 0 .../atlassian/bitbucket/6/6.1.8/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.1.9/Dockerfile | 0 .../bitbucket/6/6.1.9/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.1.9/Makefile | 0 .../atlassian/bitbucket/6/6.1.9/README.md | 0 .../atlassian/bitbucket/6/6.1.9/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.10.0/Dockerfile | 0 .../bitbucket/6/6.10.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.10.0/Makefile | 0 .../atlassian/bitbucket/6/6.10.0/README.md | 0 .../bitbucket/6/6.10.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.10.1/Dockerfile | 0 .../bitbucket/6/6.10.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.10.1/Makefile | 0 .../atlassian/bitbucket/6/6.10.1/README.md | 0 .../bitbucket/6/6.10.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.10.2/Dockerfile | 0 .../bitbucket/6/6.10.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.10.2/Makefile | 0 .../atlassian/bitbucket/6/6.10.2/README.md | 0 .../bitbucket/6/6.10.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.2.0/Dockerfile | 0 .../bitbucket/6/6.2.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.2.0/Makefile | 0 .../atlassian/bitbucket/6/6.2.0/README.md | 0 .../atlassian/bitbucket/6/6.2.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.2.1/Dockerfile | 0 .../bitbucket/6/6.2.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.2.1/Makefile | 0 .../atlassian/bitbucket/6/6.2.1/README.md | 0 .../atlassian/bitbucket/6/6.2.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.2.2/Dockerfile | 0 .../bitbucket/6/6.2.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.2.2/Makefile | 0 .../atlassian/bitbucket/6/6.2.2/README.md | 0 .../atlassian/bitbucket/6/6.2.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.2.3/Dockerfile | 0 .../bitbucket/6/6.2.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.2.3/Makefile | 0 .../atlassian/bitbucket/6/6.2.3/README.md | 0 .../atlassian/bitbucket/6/6.2.3/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.2.4/Dockerfile | 0 .../bitbucket/6/6.2.4/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.2.4/Makefile | 0 .../atlassian/bitbucket/6/6.2.4/README.md | 0 .../atlassian/bitbucket/6/6.2.4/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.2.5/Dockerfile | 0 .../bitbucket/6/6.2.5/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.2.5/Makefile | 0 .../atlassian/bitbucket/6/6.2.5/README.md | 0 .../atlassian/bitbucket/6/6.2.5/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.2.6/Dockerfile | 0 .../bitbucket/6/6.2.6/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.2.6/Makefile | 0 .../atlassian/bitbucket/6/6.2.6/README.md | 0 .../atlassian/bitbucket/6/6.2.6/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.2.7/Dockerfile | 0 .../bitbucket/6/6.2.7/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.2.7/Makefile | 0 .../atlassian/bitbucket/6/6.2.7/README.md | 0 .../atlassian/bitbucket/6/6.2.7/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.3.0/Dockerfile | 0 .../bitbucket/6/6.3.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.3.0/Makefile | 0 .../atlassian/bitbucket/6/6.3.0/README.md | 0 .../atlassian/bitbucket/6/6.3.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.3.1/Dockerfile | 0 .../bitbucket/6/6.3.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.3.1/Makefile | 0 .../atlassian/bitbucket/6/6.3.1/README.md | 0 .../atlassian/bitbucket/6/6.3.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.3.2/Dockerfile | 0 .../bitbucket/6/6.3.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.3.2/Makefile | 0 .../atlassian/bitbucket/6/6.3.2/README.md | 0 .../atlassian/bitbucket/6/6.3.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.3.3/Dockerfile | 0 .../bitbucket/6/6.3.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.3.3/Makefile | 0 .../atlassian/bitbucket/6/6.3.3/README.md | 0 .../atlassian/bitbucket/6/6.3.3/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.3.4/Dockerfile | 0 .../bitbucket/6/6.3.4/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.3.4/Makefile | 0 .../atlassian/bitbucket/6/6.3.4/README.md | 0 .../atlassian/bitbucket/6/6.3.4/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.3.5/Dockerfile | 0 .../bitbucket/6/6.3.5/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.3.5/Makefile | 0 .../atlassian/bitbucket/6/6.3.5/README.md | 0 .../atlassian/bitbucket/6/6.3.5/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.3.6/Dockerfile | 0 .../bitbucket/6/6.3.6/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.3.6/Makefile | 0 .../atlassian/bitbucket/6/6.3.6/README.md | 0 .../atlassian/bitbucket/6/6.3.6/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.4.0/Dockerfile | 0 .../bitbucket/6/6.4.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.4.0/Makefile | 0 .../atlassian/bitbucket/6/6.4.0/README.md | 0 .../atlassian/bitbucket/6/6.4.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.4.1/Dockerfile | 0 .../bitbucket/6/6.4.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.4.1/Makefile | 0 .../atlassian/bitbucket/6/6.4.1/README.md | 0 .../atlassian/bitbucket/6/6.4.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.4.2/Dockerfile | 0 .../bitbucket/6/6.4.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.4.2/Makefile | 0 .../atlassian/bitbucket/6/6.4.2/README.md | 0 .../atlassian/bitbucket/6/6.4.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.4.3/Dockerfile | 0 .../bitbucket/6/6.4.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.4.3/Makefile | 0 .../atlassian/bitbucket/6/6.4.3/README.md | 0 .../atlassian/bitbucket/6/6.4.3/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.4.4/Dockerfile | 0 .../bitbucket/6/6.4.4/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.4.4/Makefile | 0 .../atlassian/bitbucket/6/6.4.4/README.md | 0 .../atlassian/bitbucket/6/6.4.4/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.5.0/Dockerfile | 0 .../bitbucket/6/6.5.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.5.0/Makefile | 0 .../atlassian/bitbucket/6/6.5.0/README.md | 0 .../atlassian/bitbucket/6/6.5.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.5.1/Dockerfile | 0 .../bitbucket/6/6.5.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.5.1/Makefile | 0 .../atlassian/bitbucket/6/6.5.1/README.md | 0 .../atlassian/bitbucket/6/6.5.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.5.2/Dockerfile | 0 .../bitbucket/6/6.5.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.5.2/Makefile | 0 .../atlassian/bitbucket/6/6.5.2/README.md | 0 .../atlassian/bitbucket/6/6.5.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.5.3/Dockerfile | 0 .../bitbucket/6/6.5.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.5.3/Makefile | 0 .../atlassian/bitbucket/6/6.5.3/README.md | 0 .../atlassian/bitbucket/6/6.5.3/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.6.0/Dockerfile | 0 .../bitbucket/6/6.6.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.6.0/Makefile | 0 .../atlassian/bitbucket/6/6.6.0/README.md | 0 .../atlassian/bitbucket/6/6.6.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.6.1/Dockerfile | 0 .../bitbucket/6/6.6.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.6.1/Makefile | 0 .../atlassian/bitbucket/6/6.6.1/README.md | 0 .../atlassian/bitbucket/6/6.6.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.6.2/Dockerfile | 0 .../bitbucket/6/6.6.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.6.2/Makefile | 0 .../atlassian/bitbucket/6/6.6.2/README.md | 0 .../atlassian/bitbucket/6/6.6.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.6.3/Dockerfile | 0 .../bitbucket/6/6.6.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.6.3/Makefile | 0 .../atlassian/bitbucket/6/6.6.3/README.md | 0 .../atlassian/bitbucket/6/6.6.3/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.6.4/Dockerfile | 0 .../bitbucket/6/6.6.4/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.6.4/Makefile | 0 .../atlassian/bitbucket/6/6.6.4/README.md | 0 .../atlassian/bitbucket/6/6.6.4/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.7.0/Dockerfile | 0 .../bitbucket/6/6.7.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.7.0/Makefile | 0 .../atlassian/bitbucket/6/6.7.0/README.md | 0 .../atlassian/bitbucket/6/6.7.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.7.1/Dockerfile | 0 .../bitbucket/6/6.7.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.7.1/Makefile | 0 .../atlassian/bitbucket/6/6.7.1/README.md | 0 .../atlassian/bitbucket/6/6.7.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.7.2/Dockerfile | 0 .../bitbucket/6/6.7.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.7.2/Makefile | 0 .../atlassian/bitbucket/6/6.7.2/README.md | 0 .../atlassian/bitbucket/6/6.7.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.7.3/Dockerfile | 0 .../bitbucket/6/6.7.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.7.3/Makefile | 0 .../atlassian/bitbucket/6/6.7.3/README.md | 0 .../atlassian/bitbucket/6/6.7.3/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.7.4/Dockerfile | 0 .../bitbucket/6/6.7.4/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.7.4/Makefile | 0 .../atlassian/bitbucket/6/6.7.4/README.md | 0 .../atlassian/bitbucket/6/6.7.4/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.8.0/Dockerfile | 0 .../bitbucket/6/6.8.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.8.0/Makefile | 0 .../atlassian/bitbucket/6/6.8.0/README.md | 0 .../atlassian/bitbucket/6/6.8.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.8.1/Dockerfile | 0 .../bitbucket/6/6.8.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.8.1/Makefile | 0 .../atlassian/bitbucket/6/6.8.1/README.md | 0 .../atlassian/bitbucket/6/6.8.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.8.2/Dockerfile | 0 .../bitbucket/6/6.8.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.8.2/Makefile | 0 .../atlassian/bitbucket/6/6.8.2/README.md | 0 .../atlassian/bitbucket/6/6.8.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.8.3/Dockerfile | 0 .../bitbucket/6/6.8.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.8.3/Makefile | 0 .../atlassian/bitbucket/6/6.8.3/README.md | 0 .../atlassian/bitbucket/6/6.8.3/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.9.0/Dockerfile | 0 .../bitbucket/6/6.9.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.9.0/Makefile | 0 .../atlassian/bitbucket/6/6.9.0/README.md | 0 .../atlassian/bitbucket/6/6.9.0/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.9.1/Dockerfile | 0 .../bitbucket/6/6.9.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.9.1/Makefile | 0 .../atlassian/bitbucket/6/6.9.1/README.md | 0 .../atlassian/bitbucket/6/6.9.1/entrypoint.sh | 0 .../atlassian/bitbucket/6/6.9.2/Dockerfile | 0 .../bitbucket/6/6.9.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/6/6.9.2/Makefile | 0 .../atlassian/bitbucket/6/6.9.2/README.md | 0 .../atlassian/bitbucket/6/6.9.2/entrypoint.sh | 0 .../atlassian/bitbucket/6/README.md | 0 .../atlassian/bitbucket/7/7.0.0/Dockerfile | 0 .../bitbucket/7/7.0.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.0.0/Makefile | 0 .../atlassian/bitbucket/7/7.0.0/README.md | 0 .../atlassian/bitbucket/7/7.0.0/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.0.1/Dockerfile | 0 .../bitbucket/7/7.0.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.0.1/Makefile | 0 .../atlassian/bitbucket/7/7.0.1/README.md | 0 .../atlassian/bitbucket/7/7.0.1/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.0.2/Dockerfile | 0 .../bitbucket/7/7.0.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.0.2/Makefile | 0 .../atlassian/bitbucket/7/7.0.2/README.md | 0 .../atlassian/bitbucket/7/7.0.2/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.0.3/Dockerfile | 0 .../bitbucket/7/7.0.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.0.3/Makefile | 0 .../atlassian/bitbucket/7/7.0.3/README.md | 0 .../atlassian/bitbucket/7/7.0.3/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.1.0/Dockerfile | 0 .../bitbucket/7/7.1.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.1.0/Makefile | 0 .../atlassian/bitbucket/7/7.1.0/README.md | 0 .../atlassian/bitbucket/7/7.1.0/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.1.1/Dockerfile | 0 .../bitbucket/7/7.1.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.1.1/Makefile | 0 .../atlassian/bitbucket/7/7.1.1/README.md | 0 .../atlassian/bitbucket/7/7.1.1/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.1.2/Dockerfile | 0 .../bitbucket/7/7.1.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.1.2/Makefile | 0 .../atlassian/bitbucket/7/7.1.2/README.md | 0 .../atlassian/bitbucket/7/7.1.2/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.1.3/Dockerfile | 0 .../bitbucket/7/7.1.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.1.3/Makefile | 0 .../atlassian/bitbucket/7/7.1.3/README.md | 0 .../atlassian/bitbucket/7/7.1.3/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.2.0/Dockerfile | 0 .../bitbucket/7/7.2.0/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.2.0/Makefile | 0 .../atlassian/bitbucket/7/7.2.0/README.md | 0 .../atlassian/bitbucket/7/7.2.0/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.2.1/Dockerfile | 0 .../bitbucket/7/7.2.1/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.2.1/Makefile | 0 .../atlassian/bitbucket/7/7.2.1/README.md | 0 .../atlassian/bitbucket/7/7.2.1/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.2.2/Dockerfile | 0 .../bitbucket/7/7.2.2/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.2.2/Makefile | 0 .../atlassian/bitbucket/7/7.2.2/README.md | 0 .../atlassian/bitbucket/7/7.2.2/entrypoint.sh | 0 .../atlassian/bitbucket/7/7.2.3/Dockerfile | 0 .../bitbucket/7/7.2.3/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/7/7.2.3/Makefile | 0 .../atlassian/bitbucket/7/7.2.3/README.md | 0 .../atlassian/bitbucket/7/7.2.3/entrypoint.sh | 0 .../atlassian/bitbucket/7/README.md | 0 .../atlassian/bitbucket/README.md | 0 .../atlassian/bitbucket/latest/Dockerfile | 0 .../bitbucket/latest/Dockerfile.jdk11 | 0 .../atlassian/bitbucket/latest/Makefile | 0 .../atlassian/bitbucket/latest/README.md | 0 .../atlassian/bitbucket/latest/entrypoint.sh | 0 .../atlassian/confluence/5/5.5/Dockerfile | 0 .../atlassian/confluence/5/5.5/Makefile | 0 .../atlassian/confluence/5/5.5/entrypoint.sh | 0 .../atlassian/confluence/5/5.9.14/Dockerfile | 0 .../atlassian/confluence/5/5.9.14/Makefile | 0 .../confluence/5/5.9.14/entrypoint.sh | 0 .../atlassian/confluence/6/6.0.1/.env | 0 .../atlassian/confluence/6/6.0.1/Dockerfile | 0 .../atlassian/confluence/6/6.0.1}/Makefile | 0 .../confluence/6/6.0.1/docker-compose.yml | 0 .../confluence/6/6.0.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.0.2/.env | 0 .../atlassian/confluence/6/6.0.2/Dockerfile | 0 .../atlassian/confluence/6/6.0.2}/Makefile | 0 .../confluence/6/6.0.2/docker-compose.yml | 0 .../confluence/6/6.0.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.0.3/.env | 0 .../atlassian/confluence/6/6.0.3/Dockerfile | 0 .../atlassian/confluence/6/6.0.3}/Makefile | 0 .../confluence/6/6.0.3/docker-compose.yml | 0 .../confluence/6/6.0.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.0.4/.env | 0 .../atlassian/confluence/6/6.0.4/Dockerfile | 0 .../atlassian/confluence/6/6.0.4}/Makefile | 0 .../confluence/6/6.0.4/docker-compose.yml | 0 .../confluence/6/6.0.4/entrypoint.sh | 0 .../atlassian/confluence/6/6.0.5/.env | 0 .../atlassian/confluence/6/6.0.5/Dockerfile | 0 .../atlassian/confluence/6/6.0.5}/Makefile | 0 .../confluence/6/6.0.5/docker-compose.yml | 0 .../confluence/6/6.0.5/entrypoint.sh | 0 .../atlassian/confluence/6/6.0.6/.env | 0 .../atlassian/confluence/6/6.0.6/Dockerfile | 0 .../atlassian/confluence/6/6.0.6}/Makefile | 0 .../confluence/6/6.0.6/docker-compose.yml | 0 .../confluence/6/6.0.6/entrypoint.sh | 0 .../atlassian/confluence/6/6.0.7/.env | 0 .../atlassian/confluence/6/6.0.7/Dockerfile | 0 .../atlassian/confluence/6/6.0.7}/Makefile | 0 .../confluence/6/6.0.7/docker-compose.yml | 0 .../confluence/6/6.0.7/entrypoint.sh | 0 .../atlassian/confluence/6/6.1.0/.env | 0 .../atlassian/confluence/6/6.1.0/Dockerfile | 0 .../atlassian/confluence/6/6.1.0}/Makefile | 0 .../confluence/6/6.1.0/docker-compose.yml | 0 .../confluence/6/6.1.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.1.1/.env | 0 .../atlassian/confluence/6/6.1.1/Dockerfile | 0 .../atlassian/confluence/6/6.1.1}/Makefile | 0 .../confluence/6/6.1.1/docker-compose.yml | 0 .../confluence/6/6.1.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.1.2/.env | 0 .../atlassian/confluence/6/6.1.2/Dockerfile | 0 .../atlassian/confluence/6/6.1.2}/Makefile | 0 .../confluence/6/6.1.2/docker-compose.yml | 0 .../confluence/6/6.1.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.1.3/.env | 0 .../atlassian/confluence/6/6.1.3/Dockerfile | 0 .../atlassian/confluence/6/6.1.3}/Makefile | 0 .../confluence/6/6.1.3/docker-compose.yml | 0 .../confluence/6/6.1.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.1.4/.env | 0 .../atlassian/confluence/6/6.1.4/Dockerfile | 0 .../atlassian/confluence/6/6.1.4}/Makefile | 0 .../confluence/6/6.1.4/docker-compose.yml | 0 .../confluence/6/6.1.4/entrypoint.sh | 0 .../atlassian/confluence/6/6.10.0/.env | 0 .../atlassian/confluence/6/6.10.0/Dockerfile | 0 .../atlassian/confluence/6/6.10.0}/Makefile | 0 .../confluence/6/6.10.0/docker-compose.yml | 0 .../confluence/6/6.10.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.10.1/.env | 0 .../atlassian/confluence/6/6.10.1/Dockerfile | 0 .../atlassian/confluence/6/6.10.1}/Makefile | 0 .../confluence/6/6.10.1/docker-compose.yml | 0 .../confluence/6/6.10.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.10.2/.env | 0 .../atlassian/confluence/6/6.10.2/Dockerfile | 0 .../atlassian/confluence/6/6.10.2}/Makefile | 0 .../confluence/6/6.10.2/docker-compose.yml | 0 .../confluence/6/6.10.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.10.3/.env | 0 .../atlassian/confluence/6/6.10.3/Dockerfile | 0 .../atlassian/confluence/6/6.10.3}/Makefile | 0 .../confluence/6/6.10.3/docker-compose.yml | 0 .../confluence/6/6.10.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.11.0/.env | 0 .../atlassian/confluence/6/6.11.0/Dockerfile | 0 .../atlassian/confluence/6/6.11.0}/Makefile | 0 .../confluence/6/6.11.0/docker-compose.yml | 0 .../confluence/6/6.11.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.11.1/.env | 0 .../atlassian/confluence/6/6.11.1/Dockerfile | 0 .../atlassian/confluence/6/6.11.1}/Makefile | 0 .../confluence/6/6.11.1/docker-compose.yml | 0 .../confluence/6/6.11.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.11.2/.env | 0 .../atlassian/confluence/6/6.11.2/Dockerfile | 0 .../atlassian/confluence/6/6.11.2}/Makefile | 0 .../confluence/6/6.11.2/docker-compose.yml | 0 .../confluence/6/6.11.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.12.0/.env | 0 .../atlassian/confluence/6/6.12.0/Dockerfile | 0 .../atlassian/confluence/6/6.12.0}/Makefile | 0 .../confluence/6/6.12.0/docker-compose.yml | 0 .../confluence/6/6.12.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.12.1/.env | 0 .../atlassian/confluence/6/6.12.1/Dockerfile | 0 .../atlassian/confluence/6/6.12.1}/Makefile | 0 .../confluence/6/6.12.1/docker-compose.yml | 0 .../confluence/6/6.12.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.12.2/.env | 0 .../atlassian/confluence/6/6.12.2/Dockerfile | 0 .../atlassian/confluence/6/6.12.2}/Makefile | 0 .../confluence/6/6.12.2/docker-compose.yml | 0 .../confluence/6/6.12.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.12.3/.env | 0 .../atlassian/confluence/6/6.12.3/Dockerfile | 0 .../atlassian/confluence/6/6.12.3}/Makefile | 0 .../confluence/6/6.12.3/docker-compose.yml | 0 .../confluence/6/6.12.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.12.4/.env | 0 .../atlassian/confluence/6/6.12.4/Dockerfile | 0 .../atlassian/confluence/6/6.12.4}/Makefile | 0 .../confluence/6/6.12.4/docker-compose.yml | 0 .../confluence/6/6.12.4/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.0/.env | 0 .../atlassian/confluence/6/6.13.0/Dockerfile | 0 .../atlassian/confluence/6/6.13.0}/Makefile | 0 .../confluence/6/6.13.0/docker-compose.yml | 0 .../confluence/6/6.13.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.1/.env | 0 .../atlassian/confluence/6/6.13.1/Dockerfile | 0 .../atlassian/confluence/6/6.13.1}/Makefile | 0 .../confluence/6/6.13.1/docker-compose.yml | 0 .../confluence/6/6.13.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.10/.env | 0 .../atlassian/confluence/6/6.13.10/Dockerfile | 0 .../atlassian/confluence/6/6.13.10}/Makefile | 0 .../confluence/6/6.13.10/docker-compose.yml | 0 .../confluence/6/6.13.10/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.11/.env | 0 .../atlassian/confluence/6/6.13.11/Dockerfile | 0 .../atlassian/confluence/6/6.13.11}/Makefile | 0 .../confluence/6/6.13.11/docker-compose.yml | 0 .../confluence/6/6.13.11/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.12/.env | 0 .../atlassian/confluence/6/6.13.12/Dockerfile | 0 .../atlassian/confluence/6/6.13.12}/Makefile | 0 .../confluence/6/6.13.12/docker-compose.yml | 0 .../confluence/6/6.13.12/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.13/.env | 0 .../atlassian/confluence/6/6.13.13/Dockerfile | 0 .../atlassian/confluence/6/6.13.13}/Makefile | 0 .../confluence/6/6.13.13/docker-compose.yml | 0 .../confluence/6/6.13.13/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.15/.env | 0 .../atlassian/confluence/6/6.13.15/Dockerfile | 0 .../atlassian/confluence/6/6.13.15}/Makefile | 0 .../confluence/6/6.13.15/docker-compose.yml | 0 .../confluence/6/6.13.15/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.17/.env | 0 .../atlassian/confluence/6/6.13.17/Dockerfile | 0 .../atlassian/confluence/6/6.13.17}/Makefile | 0 .../confluence/6/6.13.17/docker-compose.yml | 0 .../confluence/6/6.13.17/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.18/.env | 0 .../atlassian/confluence/6/6.13.18/Dockerfile | 0 .../atlassian/confluence/6/6.13.18}/Makefile | 0 .../confluence/6/6.13.18/docker-compose.yml | 0 .../confluence/6/6.13.18/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.19/.env | 0 .../atlassian/confluence/6/6.13.19/Dockerfile | 0 .../atlassian/confluence/6/6.13.19}/Makefile | 0 .../confluence/6/6.13.19/docker-compose.yml | 0 .../confluence/6/6.13.19/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.2/.env | 0 .../atlassian/confluence/6/6.13.2/Dockerfile | 0 .../atlassian/confluence/6/6.13.2}/Makefile | 0 .../confluence/6/6.13.2/docker-compose.yml | 0 .../confluence/6/6.13.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.20/.env | 0 .../atlassian/confluence/6/6.13.20/Dockerfile | 0 .../atlassian/confluence/6/6.13.20}/Makefile | 0 .../confluence/6/6.13.20/docker-compose.yml | 0 .../confluence/6/6.13.20/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.21/.env | 0 .../atlassian/confluence/6/6.13.21/Dockerfile | 0 .../atlassian/confluence/6/6.13.21}/Makefile | 0 .../confluence/6/6.13.21/docker-compose.yml | 0 .../confluence/6/6.13.21/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.3/.env | 0 .../atlassian/confluence/6/6.13.3/Dockerfile | 0 .../atlassian/confluence/6/6.13.3}/Makefile | 0 .../confluence/6/6.13.3/docker-compose.yml | 0 .../confluence/6/6.13.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.4/.env | 0 .../atlassian/confluence/6/6.13.4/Dockerfile | 0 .../atlassian/confluence/6/6.13.4}/Makefile | 0 .../confluence/6/6.13.4/docker-compose.yml | 0 .../confluence/6/6.13.4/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.5/.env | 0 .../atlassian/confluence/6/6.13.5/Dockerfile | 0 .../atlassian/confluence/6/6.13.5}/Makefile | 0 .../confluence/6/6.13.5/docker-compose.yml | 0 .../confluence/6/6.13.5/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.6/.env | 0 .../atlassian/confluence/6/6.13.6/Dockerfile | 0 .../atlassian/confluence/6/6.13.6}/Makefile | 0 .../confluence/6/6.13.6/docker-compose.yml | 0 .../confluence/6/6.13.6/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.7/.env | 0 .../atlassian/confluence/6/6.13.7/Dockerfile | 0 .../atlassian/confluence/6/6.13.7}/Makefile | 0 .../confluence/6/6.13.7/docker-compose.yml | 0 .../confluence/6/6.13.7/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.8/.env | 0 .../atlassian/confluence/6/6.13.8/Dockerfile | 0 .../atlassian/confluence/6/6.13.8}/Makefile | 0 .../confluence/6/6.13.8/docker-compose.yml | 0 .../confluence/6/6.13.8/entrypoint.sh | 0 .../atlassian/confluence/6/6.13.9/.env | 0 .../atlassian/confluence/6/6.13.9/Dockerfile | 0 .../atlassian/confluence/6/6.13.9}/Makefile | 0 .../confluence/6/6.13.9/docker-compose.yml | 0 .../confluence/6/6.13.9/entrypoint.sh | 0 .../atlassian/confluence/6/6.14.0/.env | 0 .../atlassian/confluence/6/6.14.0/Dockerfile | 0 .../atlassian/confluence/6/6.14.0}/Makefile | 0 .../confluence/6/6.14.0/docker-compose.yml | 0 .../confluence/6/6.14.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.14.1/.env | 0 .../atlassian/confluence/6/6.14.1/Dockerfile | 0 .../atlassian/confluence/6/6.14.1}/Makefile | 0 .../confluence/6/6.14.1/docker-compose.yml | 0 .../confluence/6/6.14.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.14.2/.env | 0 .../atlassian/confluence/6/6.14.2/Dockerfile | 0 .../atlassian/confluence/6/6.14.2}/Makefile | 0 .../confluence/6/6.14.2/docker-compose.yml | 0 .../confluence/6/6.14.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.14.3/.env | 0 .../atlassian/confluence/6/6.14.3/Dockerfile | 0 .../atlassian/confluence/6/6.14.3}/Makefile | 0 .../confluence/6/6.14.3/docker-compose.yml | 0 .../confluence/6/6.14.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.15.1/.env | 0 .../atlassian/confluence/6/6.15.1/Dockerfile | 0 .../atlassian/confluence/6/6.15.1}/Makefile | 0 .../confluence/6/6.15.1/docker-compose.yml | 0 .../confluence/6/6.15.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.15.10/.env | 0 .../atlassian/confluence/6/6.15.10/Dockerfile | 0 .../atlassian/confluence/6/6.15.10}/Makefile | 0 .../confluence/6/6.15.10/docker-compose.yml | 0 .../confluence/6/6.15.10/entrypoint.sh | 0 .../atlassian/confluence/6/6.15.2/.env | 0 .../atlassian/confluence/6/6.15.2/Dockerfile | 0 .../atlassian/confluence/6/6.15.2}/Makefile | 0 .../confluence/6/6.15.2/docker-compose.yml | 0 .../confluence/6/6.15.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.15.4/.env | 0 .../atlassian/confluence/6/6.15.4/Dockerfile | 0 .../atlassian/confluence/6/6.15.4}/Makefile | 0 .../confluence/6/6.15.4/docker-compose.yml | 0 .../confluence/6/6.15.4/entrypoint.sh | 0 .../atlassian/confluence/6/6.15.6/.env | 0 .../atlassian/confluence/6/6.15.6/Dockerfile | 0 .../atlassian/confluence/6/6.15.6}/Makefile | 0 .../confluence/6/6.15.6/docker-compose.yml | 0 .../confluence/6/6.15.6/entrypoint.sh | 0 .../atlassian/confluence/6/6.15.7/.env | 0 .../atlassian/confluence/6/6.15.7/Dockerfile | 0 .../atlassian/confluence/6/6.15.7}/Makefile | 0 .../confluence/6/6.15.7/docker-compose.yml | 0 .../confluence/6/6.15.7/entrypoint.sh | 0 .../atlassian/confluence/6/6.15.8/.env | 0 .../atlassian/confluence/6/6.15.8/Dockerfile | 0 .../atlassian/confluence/6/6.15.8}/Makefile | 0 .../confluence/6/6.15.8/docker-compose.yml | 0 .../confluence/6/6.15.8/entrypoint.sh | 0 .../atlassian/confluence/6/6.15.9/.env | 0 .../atlassian/confluence/6/6.15.9/Dockerfile | 0 .../atlassian/confluence/6/6.15.9}/Makefile | 0 .../confluence/6/6.15.9/docker-compose.yml | 0 .../confluence/6/6.15.9/entrypoint.sh | 0 .../atlassian/confluence/6/6.2.0/.env | 0 .../atlassian/confluence/6/6.2.0/Dockerfile | 0 .../atlassian/confluence/6/6.2.0}/Makefile | 0 .../confluence/6/6.2.0/docker-compose.yml | 0 .../confluence/6/6.2.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.2.1/.env | 0 .../atlassian/confluence/6/6.2.1/Dockerfile | 0 .../atlassian/confluence/6/6.2.1}/Makefile | 0 .../confluence/6/6.2.1/docker-compose.yml | 0 .../confluence/6/6.2.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.2.2/.env | 0 .../atlassian/confluence/6/6.2.2/Dockerfile | 0 .../atlassian/confluence/6/6.2.2}/Makefile | 0 .../confluence/6/6.2.2/docker-compose.yml | 0 .../confluence/6/6.2.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.2.3/.env | 0 .../atlassian/confluence/6/6.2.3/Dockerfile | 0 .../atlassian/confluence/6/6.2.3}/Makefile | 0 .../confluence/6/6.2.3/docker-compose.yml | 0 .../confluence/6/6.2.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.2.4/.env | 0 .../atlassian/confluence/6/6.2.4/Dockerfile | 0 .../atlassian/confluence/6/6.2.4}/Makefile | 0 .../confluence/6/6.2.4/docker-compose.yml | 0 .../confluence/6/6.2.4/entrypoint.sh | 0 .../atlassian/confluence/6/6.3.1/.env | 0 .../atlassian/confluence/6/6.3.1/Dockerfile | 0 .../atlassian/confluence/6/6.3.1}/Makefile | 0 .../confluence/6/6.3.1/docker-compose.yml | 0 .../confluence/6/6.3.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.3.2/.env | 0 .../atlassian/confluence/6/6.3.2/Dockerfile | 0 .../atlassian/confluence/6/6.3.2}/Makefile | 0 .../confluence/6/6.3.2/docker-compose.yml | 0 .../confluence/6/6.3.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.3.3/.env | 0 .../atlassian/confluence/6/6.3.3/Dockerfile | 0 .../atlassian/confluence/6/6.3.3}/Makefile | 0 .../confluence/6/6.3.3/docker-compose.yml | 0 .../confluence/6/6.3.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.3.4/.env | 0 .../atlassian/confluence/6/6.3.4/Dockerfile | 0 .../atlassian/confluence/6/6.3.4}/Makefile | 0 .../confluence/6/6.3.4/docker-compose.yml | 0 .../confluence/6/6.3.4/entrypoint.sh | 0 .../atlassian/confluence/6/6.4.0/.env | 0 .../atlassian/confluence/6/6.4.0/Dockerfile | 0 .../atlassian/confluence/6/6.4.0}/Makefile | 0 .../confluence/6/6.4.0/docker-compose.yml | 0 .../confluence/6/6.4.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.4.1/.env | 0 .../atlassian/confluence/6/6.4.1/Dockerfile | 0 .../atlassian/confluence/6/6.4.1}/Makefile | 0 .../confluence/6/6.4.1/docker-compose.yml | 0 .../confluence/6/6.4.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.4.2/.env | 0 .../atlassian/confluence/6/6.4.2/Dockerfile | 0 .../atlassian/confluence/6/6.4.2}/Makefile | 0 .../confluence/6/6.4.2/docker-compose.yml | 0 .../confluence/6/6.4.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.4.3/.env | 0 .../atlassian/confluence/6/6.4.3/Dockerfile | 0 .../atlassian/confluence/6/6.4.3}/Makefile | 0 .../confluence/6/6.4.3/docker-compose.yml | 0 .../confluence/6/6.4.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.5.0/.env | 0 .../atlassian/confluence/6/6.5.0/Dockerfile | 0 .../atlassian/confluence/6/6.5.0}/Makefile | 0 .../confluence/6/6.5.0/docker-compose.yml | 0 .../confluence/6/6.5.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.5.1/.env | 0 .../atlassian/confluence/6/6.5.1/Dockerfile | 0 .../atlassian/confluence/6/6.5.1}/Makefile | 0 .../confluence/6/6.5.1/docker-compose.yml | 0 .../confluence/6/6.5.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.5.2/.env | 0 .../atlassian/confluence/6/6.5.2/Dockerfile | 0 .../atlassian/confluence/6/6.5.2}/Makefile | 0 .../confluence/6/6.5.2/docker-compose.yml | 0 .../confluence/6/6.5.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.5.3/.env | 0 .../atlassian/confluence/6/6.5.3/Dockerfile | 0 .../atlassian/confluence/6/6.5.3}/Makefile | 0 .../confluence/6/6.5.3/docker-compose.yml | 0 .../confluence/6/6.5.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.0/.env | 0 .../atlassian/confluence/6/6.6.0/Dockerfile | 0 .../atlassian/confluence/6/6.6.0}/Makefile | 0 .../confluence/6/6.6.0/docker-compose.yml | 0 .../confluence/6/6.6.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.1/.env | 0 .../atlassian/confluence/6/6.6.1/Dockerfile | 0 .../atlassian/confluence/6/6.6.1}/Makefile | 0 .../confluence/6/6.6.1/docker-compose.yml | 0 .../confluence/6/6.6.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.10/.env | 0 .../atlassian/confluence/6/6.6.10/Dockerfile | 0 .../atlassian/confluence/6/6.6.10}/Makefile | 0 .../confluence/6/6.6.10/docker-compose.yml | 0 .../confluence/6/6.6.10/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.11/.env | 0 .../atlassian/confluence/6/6.6.11/Dockerfile | 0 .../atlassian/confluence/6/6.6.11}/Makefile | 0 .../confluence/6/6.6.11/docker-compose.yml | 0 .../confluence/6/6.6.11/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.12/.env | 0 .../atlassian/confluence/6/6.6.12/Dockerfile | 0 .../atlassian/confluence/6/6.6.12}/Makefile | 0 .../confluence/6/6.6.12/docker-compose.yml | 0 .../confluence/6/6.6.12/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.13/.env | 0 .../atlassian/confluence/6/6.6.13/Dockerfile | 0 .../atlassian/confluence/6/6.6.13}/Makefile | 0 .../confluence/6/6.6.13/docker-compose.yml | 0 .../confluence/6/6.6.13/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.14/.env | 0 .../atlassian/confluence/6/6.6.14/Dockerfile | 0 .../atlassian/confluence/6/6.6.14}/Makefile | 0 .../confluence/6/6.6.14/docker-compose.yml | 0 .../confluence/6/6.6.14/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.15/.env | 0 .../atlassian/confluence/6/6.6.15/Dockerfile | 0 .../atlassian/confluence/6/6.6.15}/Makefile | 0 .../confluence/6/6.6.15/docker-compose.yml | 0 .../confluence/6/6.6.15/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.16/.env | 0 .../atlassian/confluence/6/6.6.16/Dockerfile | 0 .../atlassian/confluence/6/6.6.16}/Makefile | 0 .../confluence/6/6.6.16/docker-compose.yml | 0 .../confluence/6/6.6.16/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.17/.env | 0 .../atlassian/confluence/6/6.6.17/Dockerfile | 0 .../atlassian/confluence/6/6.6.17}/Makefile | 0 .../confluence/6/6.6.17/docker-compose.yml | 0 .../confluence/6/6.6.17/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.2/.env | 0 .../atlassian/confluence/6/6.6.2/Dockerfile | 0 .../atlassian/confluence/6/6.6.2}/Makefile | 0 .../confluence/6/6.6.2/docker-compose.yml | 0 .../confluence/6/6.6.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.3/.env | 0 .../atlassian/confluence/6/6.6.3/Dockerfile | 0 .../atlassian/confluence/6/6.6.3}/Makefile | 0 .../confluence/6/6.6.3/docker-compose.yml | 0 .../confluence/6/6.6.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.4/.env | 0 .../atlassian/confluence/6/6.6.4/Dockerfile | 0 .../atlassian/confluence/6/6.6.4}/Makefile | 0 .../confluence/6/6.6.4/docker-compose.yml | 0 .../confluence/6/6.6.4/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.5/.env | 0 .../atlassian/confluence/6/6.6.5/Dockerfile | 0 .../atlassian/confluence/6/6.6.5}/Makefile | 0 .../confluence/6/6.6.5/docker-compose.yml | 0 .../confluence/6/6.6.5/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.6/.env | 0 .../atlassian/confluence/6/6.6.6/Dockerfile | 0 .../atlassian/confluence/6/6.6.6}/Makefile | 0 .../confluence/6/6.6.6/docker-compose.yml | 0 .../confluence/6/6.6.6/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.7/.env | 0 .../atlassian/confluence/6/6.6.7/Dockerfile | 0 .../atlassian/confluence/6/6.6.7}/Makefile | 0 .../confluence/6/6.6.7/docker-compose.yml | 0 .../confluence/6/6.6.7/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.8/.env | 0 .../atlassian/confluence/6/6.6.8/Dockerfile | 0 .../atlassian/confluence/6/6.6.8}/Makefile | 0 .../confluence/6/6.6.8/docker-compose.yml | 0 .../confluence/6/6.6.8/entrypoint.sh | 0 .../atlassian/confluence/6/6.6.9/.env | 0 .../atlassian/confluence/6/6.6.9/Dockerfile | 0 .../atlassian/confluence/6/6.6.9}/Makefile | 0 .../confluence/6/6.6.9/docker-compose.yml | 0 .../confluence/6/6.6.9/entrypoint.sh | 0 .../atlassian/confluence/6/6.7.0/.env | 0 .../atlassian/confluence/6/6.7.0/Dockerfile | 0 .../atlassian/confluence/6/6.7.0}/Makefile | 0 .../confluence/6/6.7.0/docker-compose.yml | 0 .../confluence/6/6.7.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.7.1/.env | 0 .../atlassian/confluence/6/6.7.1/Dockerfile | 0 .../atlassian/confluence/6/6.7.1}/Makefile | 0 .../confluence/6/6.7.1/docker-compose.yml | 0 .../confluence/6/6.7.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.7.2/.env | 0 .../atlassian/confluence/6/6.7.2/Dockerfile | 0 .../atlassian/confluence/6/6.7.2}/Makefile | 0 .../confluence/6/6.7.2/docker-compose.yml | 0 .../confluence/6/6.7.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.7.3/.env | 0 .../atlassian/confluence/6/6.7.3/Dockerfile | 0 .../atlassian/confluence/6/6.7.3}/Makefile | 0 .../confluence/6/6.7.3/docker-compose.yml | 0 .../confluence/6/6.7.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.8.0/.env | 0 .../atlassian/confluence/6/6.8.0/Dockerfile | 0 .../atlassian/confluence/6/6.8.0}/Makefile | 0 .../confluence/6/6.8.0/docker-compose.yml | 0 .../confluence/6/6.8.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.8.1/.env | 0 .../atlassian/confluence/6/6.8.1/Dockerfile | 0 .../atlassian/confluence/6/6.8.1}/Makefile | 0 .../confluence/6/6.8.1/docker-compose.yml | 0 .../confluence/6/6.8.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.8.2/.env | 0 .../atlassian/confluence/6/6.8.2/Dockerfile | 0 .../atlassian/confluence/6/6.8.2}/Makefile | 0 .../confluence/6/6.8.2/docker-compose.yml | 0 .../confluence/6/6.8.2/entrypoint.sh | 0 .../atlassian/confluence/6/6.8.3/.env | 0 .../atlassian/confluence/6/6.8.3/Dockerfile | 0 .../atlassian/confluence/6/6.8.3}/Makefile | 0 .../confluence/6/6.8.3/docker-compose.yml | 0 .../confluence/6/6.8.3/entrypoint.sh | 0 .../atlassian/confluence/6/6.8.5/.env | 0 .../atlassian/confluence/6/6.8.5/Dockerfile | 0 .../atlassian/confluence/6/6.8.5}/Makefile | 0 .../confluence/6/6.8.5/docker-compose.yml | 0 .../confluence/6/6.8.5/entrypoint.sh | 0 .../atlassian/confluence/6/6.9.0/.env | 0 .../atlassian/confluence/6/6.9.0/Dockerfile | 0 .../atlassian/confluence/6/6.9.0}/Makefile | 0 .../confluence/6/6.9.0/docker-compose.yml | 0 .../confluence/6/6.9.0/entrypoint.sh | 0 .../atlassian/confluence/6/6.9.1/.env | 0 .../atlassian/confluence/6/6.9.1/Dockerfile | 0 .../atlassian/confluence/6/6.9.1}/Makefile | 0 .../confluence/6/6.9.1/docker-compose.yml | 0 .../confluence/6/6.9.1/entrypoint.sh | 0 .../atlassian/confluence/6/6.9.3/.env | 0 .../atlassian/confluence/6/6.9.3/Dockerfile | 0 .../atlassian/confluence/6/6.9.3}/Makefile | 0 .../confluence/6/6.9.3/docker-compose.yml | 0 .../confluence/6/6.9.3/entrypoint.sh | 0 .../atlassian/confluence/7/7.0.1/Dockerfile | 0 .../atlassian/confluence/7/7.0.1/Makefile | 0 .../confluence/7/7.0.1/entrypoint.sh | 0 .../atlassian/confluence/7/7.0.2/Dockerfile | 0 .../atlassian/confluence/7/7.0.2/Makefile | 0 .../confluence/7/7.0.2/entrypoint.sh | 0 .../atlassian/confluence/7/7.0.3/Dockerfile | 0 .../atlassian/confluence/7/7.0.3/Makefile | 0 .../confluence/7/7.0.3/entrypoint.sh | 0 .../atlassian/confluence/7/7.0.4/Dockerfile | 0 .../atlassian/confluence/7/7.0.4/Makefile | 0 .../confluence/7/7.0.4/entrypoint.sh | 0 .../atlassian/confluence/7/7.0.5/Dockerfile | 0 .../atlassian/confluence/7/7.0.5/Makefile | 0 .../confluence/7/7.0.5/entrypoint.sh | 0 .../atlassian/confluence/7/7.1.0/Dockerfile | 0 .../confluence/7/7.1.0/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.1.0/Makefile | 0 .../confluence/7/7.1.0/entrypoint.sh | 0 .../atlassian/confluence/7/7.1.1/Dockerfile | 0 .../confluence/7/7.1.1/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.1.1/Makefile | 0 .../confluence/7/7.1.1/entrypoint.sh | 0 .../atlassian/confluence/7/7.1.2/Dockerfile | 0 .../confluence/7/7.1.2/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.1.2/Makefile | 0 .../confluence/7/7.1.2/entrypoint.sh | 0 .../atlassian/confluence/7/7.2.0/Dockerfile | 0 .../confluence/7/7.2.0/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.2.0/Makefile | 0 .../confluence/7/7.2.0/entrypoint.sh | 0 .../atlassian/confluence/7/7.2.1/Dockerfile | 0 .../confluence/7/7.2.1/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.2.1/Makefile | 0 .../confluence/7/7.2.1/entrypoint.sh | 0 .../atlassian/confluence/7/7.2.2/Dockerfile | 0 .../confluence/7/7.2.2/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.2.2/Makefile | 0 .../confluence/7/7.2.2/entrypoint.sh | 0 .../atlassian/confluence/7/7.3.1/Dockerfile | 0 .../confluence/7/7.3.1/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.3.1/Makefile | 0 .../confluence/7/7.3.1/entrypoint.sh | 0 .../atlassian/confluence/7/7.3.2/Dockerfile | 0 .../confluence/7/7.3.2/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.3.2/Makefile | 0 .../confluence/7/7.3.2/entrypoint.sh | 0 .../atlassian/confluence/7/7.3.3/Dockerfile | 0 .../confluence/7/7.3.3/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.3.3/Makefile | 0 .../confluence/7/7.3.3/entrypoint.sh | 0 .../atlassian/confluence/7/7.3.4/Dockerfile | 0 .../confluence/7/7.3.4/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.3.4/Makefile | 0 .../confluence/7/7.3.4/entrypoint.sh | 0 .../atlassian/confluence/7/7.3.5/Dockerfile | 0 .../confluence/7/7.3.5/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.3.5/Makefile | 0 .../confluence/7/7.3.5/entrypoint.sh | 0 .../atlassian/confluence/7/7.4.0/Dockerfile | 0 .../confluence/7/7.4.0/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.4.0/Makefile | 0 .../confluence/7/7.4.0/entrypoint.sh | 0 .../atlassian/confluence/7/7.5.0/Dockerfile | 0 .../confluence/7/7.5.0/Dockerfile.jdk11 | 0 .../atlassian/confluence/7/7.5.0/Makefile | 0 .../confluence/7/7.5.0/entrypoint.sh | 0 .../atlassian/confluence/README.md | 0 .../atlassian/confluence/latest/Dockerfile | 0 .../confluence/latest/Dockerfile.jdk11 | 0 .../atlassian/confluence/latest/Makefile | 0 .../atlassian/confluence/latest/entrypoint.sh | 0 .../confluence/templates/5/Dockerfile | 0 .../confluence/templates/5}/Makefile | 0 .../confluence/templates/5/docker-compose.yml | 0 .../confluence/templates/5/entrypoint.sh | 0 .../confluence/templates/6/Dockerfile | 0 .../confluence/templates/6}/Makefile | 0 .../confluence/templates/6/docker-compose.yml | 0 .../confluence/templates/6/entrypoint.sh | 0 .../atlassian/crucible/1/1.0.3/.env | 0 .../atlassian/crucible/1/1.0.3/Dockerfile | 0 .../atlassian/crucible/1/1.0.3}/Makefile | 0 .../crucible/1/1.0.3/docker-compose.yml | 0 .../atlassian/crucible/1/1.0.3/entrypoint.sh | 0 .../atlassian/crucible/1/1.0.4/.env | 0 .../atlassian/crucible/1/1.0.4/Dockerfile | 0 .../atlassian/crucible/1/1.0.4}/Makefile | 0 .../crucible/1/1.0.4/docker-compose.yml | 0 .../atlassian/crucible/1/1.0.4/entrypoint.sh | 0 .../atlassian/crucible/1/1.0/.env | 0 .../atlassian/crucible/1/1.0/Dockerfile | 0 .../atlassian/crucible/1/1.0}/Makefile | 0 .../crucible/1/1.0/docker-compose.yml | 0 .../atlassian/crucible/1/1.0/entrypoint.sh | 0 .../atlassian/crucible/1/1.1.1/.env | 0 .../atlassian/crucible/1/1.1.1/Dockerfile | 0 .../atlassian/crucible/1/1.1.1}/Makefile | 0 .../crucible/1/1.1.1/docker-compose.yml | 0 .../atlassian/crucible/1/1.1.1/entrypoint.sh | 0 .../atlassian/crucible/1/1.1.2/.env | 0 .../atlassian/crucible/1/1.1.2/Dockerfile | 0 .../atlassian/crucible/1/1.1.2}/Makefile | 0 .../crucible/1/1.1.2/docker-compose.yml | 0 .../atlassian/crucible/1/1.1.2/entrypoint.sh | 0 .../atlassian/crucible/1/1.1.3/.env | 0 .../atlassian/crucible/1/1.1.3/Dockerfile | 0 .../atlassian/crucible/1/1.1.3}/Makefile | 0 .../crucible/1/1.1.3/docker-compose.yml | 0 .../atlassian/crucible/1/1.1.3/entrypoint.sh | 0 .../atlassian/crucible/1/1.1.4/.env | 0 .../atlassian/crucible/1/1.1.4/Dockerfile | 0 .../atlassian/crucible/1/1.1.4}/Makefile | 0 .../crucible/1/1.1.4/docker-compose.yml | 0 .../atlassian/crucible/1/1.1.4/entrypoint.sh | 0 .../atlassian/crucible/1/1.1/.env | 0 .../atlassian/crucible/1/1.1/Dockerfile | 0 .../atlassian/crucible/1/1.1}/Makefile | 0 .../crucible/1/1.1/docker-compose.yml | 0 .../atlassian/crucible/1/1.1/entrypoint.sh | 0 .../atlassian/crucible/1/1.2.1/.env | 0 .../atlassian/crucible/1/1.2.1/Dockerfile | 0 .../atlassian/crucible/1/1.2.1}/Makefile | 0 .../crucible/1/1.2.1/docker-compose.yml | 0 .../atlassian/crucible/1/1.2.1/entrypoint.sh | 0 .../atlassian/crucible/1/1.2.2/.env | 0 .../atlassian/crucible/1/1.2.2/Dockerfile | 0 .../atlassian/crucible/1/1.2.2}/Makefile | 0 .../crucible/1/1.2.2/docker-compose.yml | 0 .../atlassian/crucible/1/1.2.2/entrypoint.sh | 0 .../atlassian/crucible/1/1.2.3/.env | 0 .../atlassian/crucible/1/1.2.3/Dockerfile | 0 .../atlassian/crucible/1/1.2.3}/Makefile | 0 .../crucible/1/1.2.3/docker-compose.yml | 0 .../atlassian/crucible/1/1.2.3/entrypoint.sh | 0 .../atlassian/crucible/1/1.2/.env | 0 .../atlassian/crucible/1/1.2/Dockerfile | 0 .../atlassian/crucible/1/1.2}/Makefile | 0 .../crucible/1/1.2/docker-compose.yml | 0 .../atlassian/crucible/1/1.2/entrypoint.sh | 0 .../atlassian/crucible/1/1.5.1/.env | 0 .../atlassian/crucible/1/1.5.1/Dockerfile | 0 .../atlassian/crucible/1/1.5.1}/Makefile | 0 .../crucible/1/1.5.1/docker-compose.yml | 0 .../atlassian/crucible/1/1.5.1/entrypoint.sh | 0 .../atlassian/crucible/1/1.5.2/.env | 0 .../atlassian/crucible/1/1.5.2/Dockerfile | 0 .../atlassian/crucible/1/1.5.2}/Makefile | 0 .../crucible/1/1.5.2/docker-compose.yml | 0 .../atlassian/crucible/1/1.5.2/entrypoint.sh | 0 .../atlassian/crucible/1/1.5.3/.env | 0 .../atlassian/crucible/1/1.5.3/Dockerfile | 0 .../atlassian/crucible/1/1.5.3}/Makefile | 0 .../crucible/1/1.5.3/docker-compose.yml | 0 .../atlassian/crucible/1/1.5.3/entrypoint.sh | 0 .../atlassian/crucible/1/1.5.4/.env | 0 .../atlassian/crucible/1/1.5.4/Dockerfile | 0 .../atlassian/crucible/1/1.5.4}/Makefile | 0 .../crucible/1/1.5.4/docker-compose.yml | 0 .../atlassian/crucible/1/1.5.4/entrypoint.sh | 0 .../atlassian/crucible/1/1.5/.env | 0 .../atlassian/crucible/1/1.5/Dockerfile | 0 .../atlassian/crucible/1/1.5}/Makefile | 0 .../crucible/1/1.5/docker-compose.yml | 0 .../atlassian/crucible/1/1.5/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.0/.env | 0 .../atlassian/crucible/1/1.6.0/Dockerfile | 0 .../atlassian/crucible/1/1.6.0}/Makefile | 0 .../crucible/1/1.6.0/docker-compose.yml | 0 .../atlassian/crucible/1/1.6.0/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.0Beta1/.env | 0 .../crucible/1/1.6.0Beta1/Dockerfile | 0 .../atlassian/crucible/1/1.6.0Beta1}/Makefile | 0 .../crucible/1/1.6.0Beta1/docker-compose.yml | 0 .../crucible/1/1.6.0Beta1/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.0Beta2/.env | 0 .../crucible/1/1.6.0Beta2/Dockerfile | 0 .../atlassian/crucible/1/1.6.0Beta2}/Makefile | 0 .../crucible/1/1.6.0Beta2/docker-compose.yml | 0 .../crucible/1/1.6.0Beta2/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.1/.env | 0 .../atlassian/crucible/1/1.6.1/Dockerfile | 0 .../atlassian/crucible/1/1.6.1}/Makefile | 0 .../crucible/1/1.6.1/docker-compose.yml | 0 .../atlassian/crucible/1/1.6.1/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.2.1/.env | 0 .../atlassian/crucible/1/1.6.2.1/Dockerfile | 0 .../atlassian/crucible/1/1.6.2.1}/Makefile | 0 .../crucible/1/1.6.2.1/docker-compose.yml | 0 .../crucible/1/1.6.2.1/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.2/.env | 0 .../atlassian/crucible/1/1.6.2/Dockerfile | 0 .../atlassian/crucible/1/1.6.2}/Makefile | 0 .../crucible/1/1.6.2/docker-compose.yml | 0 .../atlassian/crucible/1/1.6.2/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.3/.env | 0 .../atlassian/crucible/1/1.6.3/Dockerfile | 0 .../atlassian/crucible/1/1.6.3}/Makefile | 0 .../crucible/1/1.6.3/docker-compose.yml | 0 .../atlassian/crucible/1/1.6.3/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.4/.env | 0 .../atlassian/crucible/1/1.6.4/Dockerfile | 0 .../atlassian/crucible/1/1.6.4}/Makefile | 0 .../crucible/1/1.6.4/docker-compose.yml | 0 .../atlassian/crucible/1/1.6.4/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.5.a/.env | 0 .../atlassian/crucible/1/1.6.5.a/Dockerfile | 0 .../atlassian/crucible/1/1.6.5.a}/Makefile | 0 .../crucible/1/1.6.5.a/docker-compose.yml | 0 .../crucible/1/1.6.5.a/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.5/.env | 0 .../atlassian/crucible/1/1.6.5/Dockerfile | 0 .../atlassian/crucible/1/1.6.5}/Makefile | 0 .../crucible/1/1.6.5/docker-compose.yml | 0 .../atlassian/crucible/1/1.6.5/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.5a/.env | 0 .../atlassian/crucible/1/1.6.5a/Dockerfile | 0 .../atlassian/crucible/1/1.6.5a}/Makefile | 0 .../crucible/1/1.6.5a/docker-compose.yml | 0 .../atlassian/crucible/1/1.6.5a/entrypoint.sh | 0 .../atlassian/crucible/1/1.6.6/.env | 0 .../atlassian/crucible/1/1.6.6/Dockerfile | 0 .../atlassian/crucible/1/1.6.6}/Makefile | 0 .../crucible/1/1.6.6/docker-compose.yml | 0 .../atlassian/crucible/1/1.6.6/entrypoint.sh | 0 .../atlassian/crucible/templates/1/Dockerfile | 0 .../atlassian/crucible/templates/1}/Makefile | 0 .../crucible/templates/1/docker-compose.yml | 0 .../crucible/templates/1/entrypoint.sh | 0 .../fisheye-crucible/2/2.0.0.B3/.env | 0 .../fisheye-crucible/2/2.0.0.B3/Dockerfile | 0 .../fisheye-crucible/2/2.0.0.B3}/Makefile | 0 .../2/2.0.0.B3/docker-compose.yml | 0 .../fisheye-crucible/2/2.0.0.B3/entrypoint.sh | 0 .../fisheye-crucible/2/2.0.0.RC1/.env | 0 .../fisheye-crucible/2/2.0.0.RC1/Dockerfile | 0 .../fisheye-crucible/2/2.0.0.RC1}/Makefile | 0 .../2/2.0.0.RC1/docker-compose.yml | 0 .../2/2.0.0.RC1/entrypoint.sh | 0 .../fisheye-crucible/2/2.0.0.RC2/.env | 0 .../fisheye-crucible/2/2.0.0.RC2/Dockerfile | 0 .../fisheye-crucible/2/2.0.0.RC2}/Makefile | 0 .../2/2.0.0.RC2/docker-compose.yml | 0 .../2/2.0.0.RC2/entrypoint.sh | 0 .../fisheye-crucible/2/2.0.0.RC3/.env | 0 .../fisheye-crucible/2/2.0.0.RC3/Dockerfile | 0 .../fisheye-crucible/2/2.0.0.RC3}/Makefile | 0 .../2/2.0.0.RC3/docker-compose.yml | 0 .../2/2.0.0.RC3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.0.0/.env | 0 .../fisheye-crucible/2/2.0.0/Dockerfile | 0 .../fisheye-crucible/2/2.0.0}/Makefile | 0 .../2/2.0.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.0.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.0.1/.env | 0 .../fisheye-crucible/2/2.0.1/Dockerfile | 0 .../fisheye-crucible/2/2.0.1}/Makefile | 0 .../2/2.0.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.0.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.0.2/.env | 0 .../fisheye-crucible/2/2.0.2/Dockerfile | 0 .../fisheye-crucible/2/2.0.2}/Makefile | 0 .../2/2.0.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.0.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.0.3/.env | 0 .../fisheye-crucible/2/2.0.3/Dockerfile | 0 .../fisheye-crucible/2/2.0.3}/Makefile | 0 .../2/2.0.3/docker-compose.yml | 0 .../fisheye-crucible/2/2.0.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.0.4/.env | 0 .../fisheye-crucible/2/2.0.4/Dockerfile | 0 .../fisheye-crucible/2/2.0.4}/Makefile | 0 .../2/2.0.4/docker-compose.yml | 0 .../fisheye-crucible/2/2.0.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.0.5/.env | 0 .../fisheye-crucible/2/2.0.5/Dockerfile | 0 .../fisheye-crucible/2/2.0.5}/Makefile | 0 .../2/2.0.5/docker-compose.yml | 0 .../fisheye-crucible/2/2.0.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.0.6/.env | 0 .../fisheye-crucible/2/2.0.6/Dockerfile | 0 .../fisheye-crucible/2/2.0.6}/Makefile | 0 .../2/2.0.6/docker-compose.yml | 0 .../fisheye-crucible/2/2.0.6/entrypoint.sh | 0 .../fisheye-crucible/2/2.1.0.M2cc/.env | 0 .../fisheye-crucible/2/2.1.0.M2cc/Dockerfile | 0 .../fisheye-crucible/2/2.1.0.M2cc}/Makefile | 0 .../2/2.1.0.M2cc/docker-compose.yml | 0 .../2/2.1.0.M2cc/entrypoint.sh | 0 .../fisheye-crucible/2/2.1.0.RC1/.env | 0 .../fisheye-crucible/2/2.1.0.RC1/Dockerfile | 0 .../fisheye-crucible/2/2.1.0.RC1}/Makefile | 0 .../2/2.1.0.RC1/docker-compose.yml | 0 .../2/2.1.0.RC1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.1.0/.env | 0 .../fisheye-crucible/2/2.1.0/Dockerfile | 0 .../fisheye-crucible/2/2.1.0}/Makefile | 0 .../2/2.1.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.1.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.1.1/.env | 0 .../fisheye-crucible/2/2.1.1/Dockerfile | 0 .../fisheye-crucible/2/2.1.1}/Makefile | 0 .../2/2.1.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.1.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.1.2/.env | 0 .../fisheye-crucible/2/2.1.2/Dockerfile | 0 .../fisheye-crucible/2/2.1.2}/Makefile | 0 .../2/2.1.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.1.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.1.3/.env | 0 .../fisheye-crucible/2/2.1.3/Dockerfile | 0 .../fisheye-crucible/2/2.1.3}/Makefile | 0 .../2/2.1.3/docker-compose.yml | 0 .../fisheye-crucible/2/2.1.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.1.4/.env | 0 .../fisheye-crucible/2/2.1.4/Dockerfile | 0 .../fisheye-crucible/2/2.1.4}/Makefile | 0 .../2/2.1.4/docker-compose.yml | 0 .../fisheye-crucible/2/2.1.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.10.0/.env | 0 .../fisheye-crucible/2/2.10.0/Dockerfile | 0 .../fisheye-crucible/2/2.10.0}/Makefile | 0 .../2/2.10.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.10.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.10.1/.env | 0 .../fisheye-crucible/2/2.10.1/Dockerfile | 0 .../fisheye-crucible/2/2.10.1}/Makefile | 0 .../2/2.10.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.10.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.10.2/.env | 0 .../fisheye-crucible/2/2.10.2/Dockerfile | 0 .../fisheye-crucible/2/2.10.2}/Makefile | 0 .../2/2.10.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.10.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.10.3/.env | 0 .../fisheye-crucible/2/2.10.3/Dockerfile | 0 .../fisheye-crucible/2/2.10.3}/Makefile | 0 .../2/2.10.3/docker-compose.yml | 0 .../fisheye-crucible/2/2.10.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.10.4/.env | 0 .../fisheye-crucible/2/2.10.4/Dockerfile | 0 .../fisheye-crucible/2/2.10.4}/Makefile | 0 .../2/2.10.4/docker-compose.yml | 0 .../fisheye-crucible/2/2.10.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.10.5/.env | 0 .../fisheye-crucible/2/2.10.5/Dockerfile | 0 .../fisheye-crucible/2/2.10.5}/Makefile | 0 .../2/2.10.5/docker-compose.yml | 0 .../fisheye-crucible/2/2.10.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.10.6/.env | 0 .../fisheye-crucible/2/2.10.6/Dockerfile | 0 .../fisheye-crucible/2/2.10.6}/Makefile | 0 .../2/2.10.6/docker-compose.yml | 0 .../fisheye-crucible/2/2.10.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.10.7/.env | 0 .../fisheye-crucible/2/2.10.7/Dockerfile | 0 .../fisheye-crucible/2/2.10.7}/Makefile | 0 .../2/2.10.7/docker-compose.yml | 0 .../fisheye-crucible/2/2.10.7/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.10.8/.env | 0 .../fisheye-crucible/2/2.10.8/Dockerfile | 0 .../fisheye-crucible/2/2.10.8}/Makefile | 0 .../2/2.10.8/docker-compose.yml | 0 .../fisheye-crucible/2/2.10.8/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.2.0/.env | 0 .../fisheye-crucible/2/2.2.0/Dockerfile | 0 .../fisheye-crucible/2/2.2.0}/Makefile | 0 .../2/2.2.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.2.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.2.1/.env | 0 .../fisheye-crucible/2/2.2.1/Dockerfile | 0 .../fisheye-crucible/2/2.2.1}/Makefile | 0 .../2/2.2.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.2.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.2.3/.env | 0 .../fisheye-crucible/2/2.2.3/Dockerfile | 0 .../fisheye-crucible/2/2.2.3}/Makefile | 0 .../2/2.2.3/docker-compose.yml | 0 .../fisheye-crucible/2/2.2.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.3.0/.env | 0 .../fisheye-crucible/2/2.3.0/Dockerfile | 0 .../fisheye-crucible/2/2.3.0}/Makefile | 0 .../2/2.3.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.3.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.3.1/.env | 0 .../fisheye-crucible/2/2.3.1/Dockerfile | 0 .../fisheye-crucible/2/2.3.1}/Makefile | 0 .../2/2.3.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.3.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.3.2/.env | 0 .../fisheye-crucible/2/2.3.2/Dockerfile | 0 .../fisheye-crucible/2/2.3.2}/Makefile | 0 .../2/2.3.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.3.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.3.3/.env | 0 .../fisheye-crucible/2/2.3.3/Dockerfile | 0 .../fisheye-crucible/2/2.3.3}/Makefile | 0 .../2/2.3.3/docker-compose.yml | 0 .../fisheye-crucible/2/2.3.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.3.4/.env | 0 .../fisheye-crucible/2/2.3.4/Dockerfile | 0 .../fisheye-crucible/2/2.3.4}/Makefile | 0 .../2/2.3.4/docker-compose.yml | 0 .../fisheye-crucible/2/2.3.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.3.5/.env | 0 .../fisheye-crucible/2/2.3.5/Dockerfile | 0 .../fisheye-crucible/2/2.3.5}/Makefile | 0 .../2/2.3.5/docker-compose.yml | 0 .../fisheye-crucible/2/2.3.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.3.6/.env | 0 .../fisheye-crucible/2/2.3.6/Dockerfile | 0 .../fisheye-crucible/2/2.3.6}/Makefile | 0 .../2/2.3.6/docker-compose.yml | 0 .../fisheye-crucible/2/2.3.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.3.7/.env | 0 .../fisheye-crucible/2/2.3.7/Dockerfile | 0 .../fisheye-crucible/2/2.3.7}/Makefile | 0 .../2/2.3.7/docker-compose.yml | 0 .../fisheye-crucible/2/2.3.7/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.3.8/.env | 0 .../fisheye-crucible/2/2.3.8/Dockerfile | 0 .../fisheye-crucible/2/2.3.8}/Makefile | 0 .../2/2.3.8/docker-compose.yml | 0 .../fisheye-crucible/2/2.3.8/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.4.0/.env | 0 .../fisheye-crucible/2/2.4.0/Dockerfile | 0 .../fisheye-crucible/2/2.4.0}/Makefile | 0 .../2/2.4.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.4.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.4.1/.env | 0 .../fisheye-crucible/2/2.4.1/Dockerfile | 0 .../fisheye-crucible/2/2.4.1}/Makefile | 0 .../2/2.4.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.4.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.4.2/.env | 0 .../fisheye-crucible/2/2.4.2/Dockerfile | 0 .../fisheye-crucible/2/2.4.2}/Makefile | 0 .../2/2.4.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.4.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.4.3/.env | 0 .../fisheye-crucible/2/2.4.3/Dockerfile | 0 .../fisheye-crucible/2/2.4.3}/Makefile | 0 .../2/2.4.3/docker-compose.yml | 0 .../fisheye-crucible/2/2.4.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.4.4/.env | 0 .../fisheye-crucible/2/2.4.4/Dockerfile | 0 .../fisheye-crucible/2/2.4.4}/Makefile | 0 .../2/2.4.4/docker-compose.yml | 0 .../fisheye-crucible/2/2.4.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.4.5/.env | 0 .../fisheye-crucible/2/2.4.5/Dockerfile | 0 .../fisheye-crucible/2/2.4.5}/Makefile | 0 .../2/2.4.5/docker-compose.yml | 0 .../fisheye-crucible/2/2.4.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.4.6/.env | 0 .../fisheye-crucible/2/2.4.6/Dockerfile | 0 .../fisheye-crucible/2/2.4.6}/Makefile | 0 .../2/2.4.6/docker-compose.yml | 0 .../fisheye-crucible/2/2.4.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.0/.env | 0 .../fisheye-crucible/2/2.5.0/Dockerfile | 0 .../fisheye-crucible/2/2.5.0}/Makefile | 0 .../2/2.5.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.1/.env | 0 .../fisheye-crucible/2/2.5.1/Dockerfile | 0 .../fisheye-crucible/2/2.5.1}/Makefile | 0 .../2/2.5.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.2/.env | 0 .../fisheye-crucible/2/2.5.2/Dockerfile | 0 .../fisheye-crucible/2/2.5.2}/Makefile | 0 .../2/2.5.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.3/.env | 0 .../fisheye-crucible/2/2.5.3/Dockerfile | 0 .../fisheye-crucible/2/2.5.3}/Makefile | 0 .../2/2.5.3/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.4/.env | 0 .../fisheye-crucible/2/2.5.4/Dockerfile | 0 .../fisheye-crucible/2/2.5.4}/Makefile | 0 .../2/2.5.4/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.5/.env | 0 .../fisheye-crucible/2/2.5.5/Dockerfile | 0 .../fisheye-crucible/2/2.5.5}/Makefile | 0 .../2/2.5.5/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.6/.env | 0 .../fisheye-crucible/2/2.5.6/Dockerfile | 0 .../fisheye-crucible/2/2.5.6}/Makefile | 0 .../2/2.5.6/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.7/.env | 0 .../fisheye-crucible/2/2.5.7/Dockerfile | 0 .../fisheye-crucible/2/2.5.7}/Makefile | 0 .../2/2.5.7/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.7/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.8/.env | 0 .../fisheye-crucible/2/2.5.8/Dockerfile | 0 .../fisheye-crucible/2/2.5.8}/Makefile | 0 .../2/2.5.8/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.8/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.5.9/.env | 0 .../fisheye-crucible/2/2.5.9/Dockerfile | 0 .../fisheye-crucible/2/2.5.9}/Makefile | 0 .../2/2.5.9/docker-compose.yml | 0 .../fisheye-crucible/2/2.5.9/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.0/.env | 0 .../fisheye-crucible/2/2.6.0/Dockerfile | 0 .../fisheye-crucible/2/2.6.0}/Makefile | 0 .../2/2.6.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.1/.env | 0 .../fisheye-crucible/2/2.6.1/Dockerfile | 0 .../fisheye-crucible/2/2.6.1}/Makefile | 0 .../2/2.6.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.2/.env | 0 .../fisheye-crucible/2/2.6.2/Dockerfile | 0 .../fisheye-crucible/2/2.6.2}/Makefile | 0 .../2/2.6.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.3/.env | 0 .../fisheye-crucible/2/2.6.3/Dockerfile | 0 .../fisheye-crucible/2/2.6.3}/Makefile | 0 .../2/2.6.3/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.4/.env | 0 .../fisheye-crucible/2/2.6.4/Dockerfile | 0 .../fisheye-crucible/2/2.6.4}/Makefile | 0 .../2/2.6.4/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.5/.env | 0 .../fisheye-crucible/2/2.6.5/Dockerfile | 0 .../fisheye-crucible/2/2.6.5}/Makefile | 0 .../2/2.6.5/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.6/.env | 0 .../fisheye-crucible/2/2.6.6/Dockerfile | 0 .../fisheye-crucible/2/2.6.6}/Makefile | 0 .../2/2.6.6/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.7/.env | 0 .../fisheye-crucible/2/2.6.7/Dockerfile | 0 .../fisheye-crucible/2/2.6.7}/Makefile | 0 .../2/2.6.7/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.7/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.8/.env | 0 .../fisheye-crucible/2/2.6.8/Dockerfile | 0 .../fisheye-crucible/2/2.6.8}/Makefile | 0 .../2/2.6.8/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.8/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.6.9/.env | 0 .../fisheye-crucible/2/2.6.9/Dockerfile | 0 .../fisheye-crucible/2/2.6.9}/Makefile | 0 .../2/2.6.9/docker-compose.yml | 0 .../fisheye-crucible/2/2.6.9/entrypoint.sh | 0 .../fisheye-crucible/2/2.7.0-EAP-1/.env | 0 .../fisheye-crucible/2/2.7.0-EAP-1/Dockerfile | 0 .../fisheye-crucible/2/2.7.0-EAP-1}/Makefile | 0 .../2/2.7.0-EAP-1/docker-compose.yml | 0 .../2/2.7.0-EAP-1/entrypoint.sh | 0 .../fisheye-crucible/2/2.7.0-EAP-2/.env | 0 .../fisheye-crucible/2/2.7.0-EAP-2/Dockerfile | 0 .../fisheye-crucible/2/2.7.0-EAP-2}/Makefile | 0 .../2/2.7.0-EAP-2/docker-compose.yml | 0 .../2/2.7.0-EAP-2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.0/.env | 0 .../fisheye-crucible/2/2.7.0/Dockerfile | 0 .../fisheye-crucible/2/2.7.0}/Makefile | 0 .../2/2.7.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.1/.env | 0 .../fisheye-crucible/2/2.7.1/Dockerfile | 0 .../fisheye-crucible/2/2.7.1}/Makefile | 0 .../2/2.7.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.10/.env | 0 .../fisheye-crucible/2/2.7.10/Dockerfile | 0 .../fisheye-crucible/2/2.7.10}/Makefile | 0 .../2/2.7.10/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.10/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.11/.env | 0 .../fisheye-crucible/2/2.7.11/Dockerfile | 0 .../fisheye-crucible/2/2.7.11}/Makefile | 0 .../2/2.7.11/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.11/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.12/.env | 0 .../fisheye-crucible/2/2.7.12/Dockerfile | 0 .../fisheye-crucible/2/2.7.12}/Makefile | 0 .../2/2.7.12/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.12/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.13/.env | 0 .../fisheye-crucible/2/2.7.13/Dockerfile | 0 .../fisheye-crucible/2/2.7.13}/Makefile | 0 .../2/2.7.13/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.13/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.14/.env | 0 .../fisheye-crucible/2/2.7.14/Dockerfile | 0 .../fisheye-crucible/2/2.7.14}/Makefile | 0 .../2/2.7.14/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.14/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.15/.env | 0 .../fisheye-crucible/2/2.7.15/Dockerfile | 0 .../fisheye-crucible/2/2.7.15}/Makefile | 0 .../2/2.7.15/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.15/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.2/.env | 0 .../fisheye-crucible/2/2.7.2/Dockerfile | 0 .../fisheye-crucible/2/2.7.2}/Makefile | 0 .../2/2.7.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.3/.env | 0 .../fisheye-crucible/2/2.7.3/Dockerfile | 0 .../fisheye-crucible/2/2.7.3}/Makefile | 0 .../2/2.7.3/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.4/.env | 0 .../fisheye-crucible/2/2.7.4/Dockerfile | 0 .../fisheye-crucible/2/2.7.4}/Makefile | 0 .../2/2.7.4/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.5/.env | 0 .../fisheye-crucible/2/2.7.5/Dockerfile | 0 .../fisheye-crucible/2/2.7.5}/Makefile | 0 .../2/2.7.5/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.6/.env | 0 .../fisheye-crucible/2/2.7.6/Dockerfile | 0 .../fisheye-crucible/2/2.7.6}/Makefile | 0 .../2/2.7.6/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.7/.env | 0 .../fisheye-crucible/2/2.7.7/Dockerfile | 0 .../fisheye-crucible/2/2.7.7}/Makefile | 0 .../2/2.7.7/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.7/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.8/.env | 0 .../fisheye-crucible/2/2.7.8/Dockerfile | 0 .../fisheye-crucible/2/2.7.8}/Makefile | 0 .../2/2.7.8/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.8/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.7.9/.env | 0 .../fisheye-crucible/2/2.7.9/Dockerfile | 0 .../fisheye-crucible/2/2.7.9}/Makefile | 0 .../2/2.7.9/docker-compose.yml | 0 .../fisheye-crucible/2/2.7.9/entrypoint.sh | 0 .../fisheye-crucible/2/2.8.0-m1/.env | 0 .../fisheye-crucible/2/2.8.0-m1/Dockerfile | 0 .../fisheye-crucible/2/2.8.0-m1}/Makefile | 0 .../2/2.8.0-m1/docker-compose.yml | 0 .../fisheye-crucible/2/2.8.0-m1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.8.0/.env | 0 .../fisheye-crucible/2/2.8.0/Dockerfile | 0 .../fisheye-crucible/2/2.8.0}/Makefile | 0 .../2/2.8.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.8.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.8.1/.env | 0 .../fisheye-crucible/2/2.8.1/Dockerfile | 0 .../fisheye-crucible/2/2.8.1}/Makefile | 0 .../2/2.8.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.8.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.8.2/.env | 0 .../fisheye-crucible/2/2.8.2/Dockerfile | 0 .../fisheye-crucible/2/2.8.2}/Makefile | 0 .../2/2.8.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.8.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.9.0/.env | 0 .../fisheye-crucible/2/2.9.0/Dockerfile | 0 .../fisheye-crucible/2/2.9.0}/Makefile | 0 .../2/2.9.0/docker-compose.yml | 0 .../fisheye-crucible/2/2.9.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.9.1/.env | 0 .../fisheye-crucible/2/2.9.1/Dockerfile | 0 .../fisheye-crucible/2/2.9.1}/Makefile | 0 .../2/2.9.1/docker-compose.yml | 0 .../fisheye-crucible/2/2.9.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/2/2.9.2/.env | 0 .../fisheye-crucible/2/2.9.2/Dockerfile | 0 .../fisheye-crucible/2/2.9.2}/Makefile | 0 .../2/2.9.2/docker-compose.yml | 0 .../fisheye-crucible/2/2.9.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.0.0/.env | 0 .../fisheye-crucible/3/3.0.0/Dockerfile | 0 .../fisheye-crucible/3/3.0.0}/Makefile | 0 .../3/3.0.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.0.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.0.1/.env | 0 .../fisheye-crucible/3/3.0.1/Dockerfile | 0 .../fisheye-crucible/3/3.0.1}/Makefile | 0 .../3/3.0.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.0.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.0.2/.env | 0 .../fisheye-crucible/3/3.0.2/Dockerfile | 0 .../fisheye-crucible/3/3.0.2}/Makefile | 0 .../3/3.0.2/docker-compose.yml | 0 .../fisheye-crucible/3/3.0.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.0.3/.env | 0 .../fisheye-crucible/3/3.0.3/Dockerfile | 0 .../fisheye-crucible/3/3.0.3}/Makefile | 0 .../3/3.0.3/docker-compose.yml | 0 .../fisheye-crucible/3/3.0.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.0.4/.env | 0 .../fisheye-crucible/3/3.0.4/Dockerfile | 0 .../fisheye-crucible/3/3.0.4}/Makefile | 0 .../3/3.0.4/docker-compose.yml | 0 .../fisheye-crucible/3/3.0.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.1.0/.env | 0 .../fisheye-crucible/3/3.1.0/Dockerfile | 0 .../fisheye-crucible/3/3.1.0}/Makefile | 0 .../3/3.1.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.1.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.1.1/.env | 0 .../fisheye-crucible/3/3.1.1/Dockerfile | 0 .../fisheye-crucible/3/3.1.1}/Makefile | 0 .../3/3.1.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.1.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.1.2/.env | 0 .../fisheye-crucible/3/3.1.2/Dockerfile | 0 .../fisheye-crucible/3/3.1.2}/Makefile | 0 .../3/3.1.2/docker-compose.yml | 0 .../fisheye-crucible/3/3.1.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.1.3/.env | 0 .../fisheye-crucible/3/3.1.3/Dockerfile | 0 .../fisheye-crucible/3/3.1.3}/Makefile | 0 .../3/3.1.3/docker-compose.yml | 0 .../fisheye-crucible/3/3.1.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.1.4/.env | 0 .../fisheye-crucible/3/3.1.4/Dockerfile | 0 .../fisheye-crucible/3/3.1.4}/Makefile | 0 .../3/3.1.4/docker-compose.yml | 0 .../fisheye-crucible/3/3.1.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.1.5/.env | 0 .../fisheye-crucible/3/3.1.5/Dockerfile | 0 .../fisheye-crucible/3/3.1.5}/Makefile | 0 .../3/3.1.5/docker-compose.yml | 0 .../fisheye-crucible/3/3.1.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.1.6/.env | 0 .../fisheye-crucible/3/3.1.6/Dockerfile | 0 .../fisheye-crucible/3/3.1.6}/Makefile | 0 .../3/3.1.6/docker-compose.yml | 0 .../fisheye-crucible/3/3.1.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.1.7/.env | 0 .../fisheye-crucible/3/3.1.7/Dockerfile | 0 .../fisheye-crucible/3/3.1.7}/Makefile | 0 .../3/3.1.7/docker-compose.yml | 0 .../fisheye-crucible/3/3.1.7/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.10.1/.env | 0 .../fisheye-crucible/3/3.10.1/Dockerfile | 0 .../fisheye-crucible/3/3.10.1}/Makefile | 0 .../3/3.10.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.10.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.10.2/.env | 0 .../fisheye-crucible/3/3.10.2/Dockerfile | 0 .../fisheye-crucible/3/3.10.2}/Makefile | 0 .../3/3.10.2/docker-compose.yml | 0 .../fisheye-crucible/3/3.10.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.10.3/.env | 0 .../fisheye-crucible/3/3.10.3/Dockerfile | 0 .../fisheye-crucible/3/3.10.3}/Makefile | 0 .../3/3.10.3/docker-compose.yml | 0 .../fisheye-crucible/3/3.10.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.10.4/.env | 0 .../fisheye-crucible/3/3.10.4/Dockerfile | 0 .../fisheye-crucible/3/3.10.4}/Makefile | 0 .../3/3.10.4/docker-compose.yml | 0 .../fisheye-crucible/3/3.10.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.2.0/.env | 0 .../fisheye-crucible/3/3.2.0/Dockerfile | 0 .../fisheye-crucible/3/3.2.0}/Makefile | 0 .../3/3.2.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.2.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.2.1/.env | 0 .../fisheye-crucible/3/3.2.1/Dockerfile | 0 .../fisheye-crucible/3/3.2.1}/Makefile | 0 .../3/3.2.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.2.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.2.2/.env | 0 .../fisheye-crucible/3/3.2.2/Dockerfile | 0 .../fisheye-crucible/3/3.2.2}/Makefile | 0 .../3/3.2.2/docker-compose.yml | 0 .../fisheye-crucible/3/3.2.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.2.3/.env | 0 .../fisheye-crucible/3/3.2.3/Dockerfile | 0 .../fisheye-crucible/3/3.2.3}/Makefile | 0 .../3/3.2.3/docker-compose.yml | 0 .../fisheye-crucible/3/3.2.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.2.4/.env | 0 .../fisheye-crucible/3/3.2.4/Dockerfile | 0 .../fisheye-crucible/3/3.2.4}/Makefile | 0 .../3/3.2.4/docker-compose.yml | 0 .../fisheye-crucible/3/3.2.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.2.5/.env | 0 .../fisheye-crucible/3/3.2.5/Dockerfile | 0 .../fisheye-crucible/3/3.2.5}/Makefile | 0 .../3/3.2.5/docker-compose.yml | 0 .../fisheye-crucible/3/3.2.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.3.0/.env | 0 .../fisheye-crucible/3/3.3.0/Dockerfile | 0 .../fisheye-crucible/3/3.3.0}/Makefile | 0 .../3/3.3.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.3.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.3.1/.env | 0 .../fisheye-crucible/3/3.3.1/Dockerfile | 0 .../fisheye-crucible/3/3.3.1}/Makefile | 0 .../3/3.3.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.3.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.3.2/.env | 0 .../fisheye-crucible/3/3.3.2/Dockerfile | 0 .../fisheye-crucible/3/3.3.2}/Makefile | 0 .../3/3.3.2/docker-compose.yml | 0 .../fisheye-crucible/3/3.3.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.3.3/.env | 0 .../fisheye-crucible/3/3.3.3/Dockerfile | 0 .../fisheye-crucible/3/3.3.3}/Makefile | 0 .../3/3.3.3/docker-compose.yml | 0 .../fisheye-crucible/3/3.3.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.3.4/.env | 0 .../fisheye-crucible/3/3.3.4/Dockerfile | 0 .../fisheye-crucible/3/3.3.4}/Makefile | 0 .../3/3.3.4/docker-compose.yml | 0 .../fisheye-crucible/3/3.3.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.4.0/.env | 0 .../fisheye-crucible/3/3.4.0/Dockerfile | 0 .../fisheye-crucible/3/3.4.0}/Makefile | 0 .../3/3.4.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.4.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.4.3/.env | 0 .../fisheye-crucible/3/3.4.3/Dockerfile | 0 .../fisheye-crucible/3/3.4.3}/Makefile | 0 .../3/3.4.3/docker-compose.yml | 0 .../fisheye-crucible/3/3.4.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.4.4/.env | 0 .../fisheye-crucible/3/3.4.4/Dockerfile | 0 .../fisheye-crucible/3/3.4.4}/Makefile | 0 .../3/3.4.4/docker-compose.yml | 0 .../fisheye-crucible/3/3.4.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.4.5/.env | 0 .../fisheye-crucible/3/3.4.5/Dockerfile | 0 .../fisheye-crucible/3/3.4.5}/Makefile | 0 .../3/3.4.5/docker-compose.yml | 0 .../fisheye-crucible/3/3.4.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.4.6/.env | 0 .../fisheye-crucible/3/3.4.6/Dockerfile | 0 .../fisheye-crucible/3/3.4.6}/Makefile | 0 .../3/3.4.6/docker-compose.yml | 0 .../fisheye-crucible/3/3.4.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.4.7/.env | 0 .../fisheye-crucible/3/3.4.7/Dockerfile | 0 .../fisheye-crucible/3/3.4.7}/Makefile | 0 .../3/3.4.7/docker-compose.yml | 0 .../fisheye-crucible/3/3.4.7/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.5.0/.env | 0 .../fisheye-crucible/3/3.5.0/Dockerfile | 0 .../fisheye-crucible/3/3.5.0}/Makefile | 0 .../3/3.5.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.5.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.5.1/.env | 0 .../fisheye-crucible/3/3.5.1/Dockerfile | 0 .../fisheye-crucible/3/3.5.1}/Makefile | 0 .../3/3.5.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.5.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.5.2/.env | 0 .../fisheye-crucible/3/3.5.2/Dockerfile | 0 .../fisheye-crucible/3/3.5.2}/Makefile | 0 .../3/3.5.2/docker-compose.yml | 0 .../fisheye-crucible/3/3.5.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.5.3/.env | 0 .../fisheye-crucible/3/3.5.3/Dockerfile | 0 .../fisheye-crucible/3/3.5.3}/Makefile | 0 .../3/3.5.3/docker-compose.yml | 0 .../fisheye-crucible/3/3.5.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.5.4/.env | 0 .../fisheye-crucible/3/3.5.4/Dockerfile | 0 .../fisheye-crucible/3/3.5.4}/Makefile | 0 .../3/3.5.4/docker-compose.yml | 0 .../fisheye-crucible/3/3.5.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.5.5/.env | 0 .../fisheye-crucible/3/3.5.5/Dockerfile | 0 .../fisheye-crucible/3/3.5.5}/Makefile | 0 .../3/3.5.5/docker-compose.yml | 0 .../fisheye-crucible/3/3.5.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.6.0/.env | 0 .../fisheye-crucible/3/3.6.0/Dockerfile | 0 .../fisheye-crucible/3/3.6.0}/Makefile | 0 .../3/3.6.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.6.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.6.1/.env | 0 .../fisheye-crucible/3/3.6.1/Dockerfile | 0 .../fisheye-crucible/3/3.6.1}/Makefile | 0 .../3/3.6.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.6.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.6.2/.env | 0 .../fisheye-crucible/3/3.6.2/Dockerfile | 0 .../fisheye-crucible/3/3.6.2}/Makefile | 0 .../3/3.6.2/docker-compose.yml | 0 .../fisheye-crucible/3/3.6.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.6.3/.env | 0 .../fisheye-crucible/3/3.6.3/Dockerfile | 0 .../fisheye-crucible/3/3.6.3}/Makefile | 0 .../3/3.6.3/docker-compose.yml | 0 .../fisheye-crucible/3/3.6.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.6.4/.env | 0 .../fisheye-crucible/3/3.6.4/Dockerfile | 0 .../fisheye-crucible/3/3.6.4}/Makefile | 0 .../3/3.6.4/docker-compose.yml | 0 .../fisheye-crucible/3/3.6.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.7.0/.env | 0 .../fisheye-crucible/3/3.7.0/Dockerfile | 0 .../fisheye-crucible/3/3.7.0}/Makefile | 0 .../3/3.7.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.7.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.7.1/.env | 0 .../fisheye-crucible/3/3.7.1/Dockerfile | 0 .../fisheye-crucible/3/3.7.1}/Makefile | 0 .../3/3.7.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.7.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.8.0/.env | 0 .../fisheye-crucible/3/3.8.0/Dockerfile | 0 .../fisheye-crucible/3/3.8.0}/Makefile | 0 .../3/3.8.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.8.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.8.1/.env | 0 .../fisheye-crucible/3/3.8.1/Dockerfile | 0 .../fisheye-crucible/3/3.8.1}/Makefile | 0 .../3/3.8.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.8.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.9.0/.env | 0 .../fisheye-crucible/3/3.9.0/Dockerfile | 0 .../fisheye-crucible/3/3.9.0}/Makefile | 0 .../3/3.9.0/docker-compose.yml | 0 .../fisheye-crucible/3/3.9.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.9.1/.env | 0 .../fisheye-crucible/3/3.9.1/Dockerfile | 0 .../fisheye-crucible/3/3.9.1}/Makefile | 0 .../3/3.9.1/docker-compose.yml | 0 .../fisheye-crucible/3/3.9.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/3/3.9.2/.env | 0 .../fisheye-crucible/3/3.9.2/Dockerfile | 0 .../fisheye-crucible/3/3.9.2}/Makefile | 0 .../3/3.9.2/docker-compose.yml | 0 .../fisheye-crucible/3/3.9.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.0.2/.env | 0 .../fisheye-crucible/4/4.0.2/Dockerfile | 0 .../fisheye-crucible/4/4.0.2}/Makefile | 0 .../4/4.0.2/docker-compose.yml | 0 .../fisheye-crucible/4/4.0.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.0.3/.env | 0 .../fisheye-crucible/4/4.0.3/Dockerfile | 0 .../fisheye-crucible/4/4.0.3}/Makefile | 0 .../4/4.0.3/docker-compose.yml | 0 .../fisheye-crucible/4/4.0.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.0.4/.env | 0 .../fisheye-crucible/4/4.0.4/Dockerfile | 0 .../fisheye-crucible/4/4.0.4}/Makefile | 0 .../4/4.0.4/docker-compose.yml | 0 .../fisheye-crucible/4/4.0.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.1.0/.env | 0 .../fisheye-crucible/4/4.1.0/Dockerfile | 0 .../fisheye-crucible/4/4.1.0}/Makefile | 0 .../4/4.1.0/docker-compose.yml | 0 .../fisheye-crucible/4/4.1.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.1.1/.env | 0 .../fisheye-crucible/4/4.1.1/Dockerfile | 0 .../fisheye-crucible/4/4.1.1}/Makefile | 0 .../4/4.1.1/docker-compose.yml | 0 .../fisheye-crucible/4/4.1.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.1.2/.env | 0 .../fisheye-crucible/4/4.1.2/Dockerfile | 0 .../fisheye-crucible/4/4.1.2}/Makefile | 0 .../4/4.1.2/docker-compose.yml | 0 .../fisheye-crucible/4/4.1.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.1.3/.env | 0 .../fisheye-crucible/4/4.1.3/Dockerfile | 0 .../fisheye-crucible/4/4.1.3}/Makefile | 0 .../4/4.1.3/docker-compose.yml | 0 .../fisheye-crucible/4/4.1.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.2.0/.env | 0 .../fisheye-crucible/4/4.2.0/Dockerfile | 0 .../fisheye-crucible/4/4.2.0}/Makefile | 0 .../4/4.2.0/docker-compose.yml | 0 .../fisheye-crucible/4/4.2.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.2.1/.env | 0 .../fisheye-crucible/4/4.2.1/Dockerfile | 0 .../fisheye-crucible/4/4.2.1}/Makefile | 0 .../4/4.2.1/docker-compose.yml | 0 .../fisheye-crucible/4/4.2.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.2.2/.env | 0 .../fisheye-crucible/4/4.2.2/Dockerfile | 0 .../fisheye-crucible/4/4.2.2}/Makefile | 0 .../4/4.2.2/docker-compose.yml | 0 .../fisheye-crucible/4/4.2.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.2.3/.env | 0 .../fisheye-crucible/4/4.2.3/Dockerfile | 0 .../fisheye-crucible/4/4.2.3}/Makefile | 0 .../4/4.2.3/docker-compose.yml | 0 .../fisheye-crucible/4/4.2.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.3.0/.env | 0 .../fisheye-crucible/4/4.3.0/Dockerfile | 0 .../fisheye-crucible/4/4.3.0}/Makefile | 0 .../4/4.3.0/docker-compose.yml | 0 .../fisheye-crucible/4/4.3.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.3.1/.env | 0 .../fisheye-crucible/4/4.3.1/Dockerfile | 0 .../fisheye-crucible/4/4.3.1}/Makefile | 0 .../4/4.3.1/docker-compose.yml | 0 .../fisheye-crucible/4/4.3.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.3.2/.env | 0 .../fisheye-crucible/4/4.3.2/Dockerfile | 0 .../fisheye-crucible/4/4.3.2}/Makefile | 0 .../4/4.3.2/docker-compose.yml | 0 .../fisheye-crucible/4/4.3.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.3.3/.env | 0 .../fisheye-crucible/4/4.3.3/Dockerfile | 0 .../fisheye-crucible/4/4.3.3}/Makefile | 0 .../4/4.3.3/docker-compose.yml | 0 .../fisheye-crucible/4/4.3.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.4.0/.env | 0 .../fisheye-crucible/4/4.4.0/Dockerfile | 0 .../fisheye-crucible/4/4.4.0}/Makefile | 0 .../4/4.4.0/docker-compose.yml | 0 .../fisheye-crucible/4/4.4.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.4.1/.env | 0 .../fisheye-crucible/4/4.4.1/Dockerfile | 0 .../fisheye-crucible/4/4.4.1}/Makefile | 0 .../4/4.4.1/docker-compose.yml | 0 .../fisheye-crucible/4/4.4.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.4.2/.env | 0 .../fisheye-crucible/4/4.4.2/Dockerfile | 0 .../fisheye-crucible/4/4.4.2}/Makefile | 0 .../4/4.4.2/docker-compose.yml | 0 .../fisheye-crucible/4/4.4.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.4.3/.env | 0 .../fisheye-crucible/4/4.4.3/Dockerfile | 0 .../fisheye-crucible/4/4.4.3}/Makefile | 0 .../4/4.4.3/docker-compose.yml | 0 .../fisheye-crucible/4/4.4.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.4.5/.env | 0 .../fisheye-crucible/4/4.4.5/Dockerfile | 0 .../fisheye-crucible/4/4.4.5}/Makefile | 0 .../4/4.4.5/docker-compose.yml | 0 .../fisheye-crucible/4/4.4.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.4.6/.env | 0 .../fisheye-crucible/4/4.4.6/Dockerfile | 0 .../fisheye-crucible/4/4.4.6}/Makefile | 0 .../4/4.4.6/docker-compose.yml | 0 .../fisheye-crucible/4/4.4.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.4.7/.env | 0 .../fisheye-crucible/4/4.4.7/Dockerfile | 0 .../fisheye-crucible/4/4.4.7}/Makefile | 0 .../4/4.4.7/docker-compose.yml | 0 .../fisheye-crucible/4/4.4.7/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.5.0/.env | 0 .../fisheye-crucible/4/4.5.0/Dockerfile | 0 .../fisheye-crucible/4/4.5.0}/Makefile | 0 .../4/4.5.0/docker-compose.yml | 0 .../fisheye-crucible/4/4.5.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.5.1/.env | 0 .../fisheye-crucible/4/4.5.1/Dockerfile | 0 .../fisheye-crucible/4/4.5.1}/Makefile | 0 .../4/4.5.1/docker-compose.yml | 0 .../fisheye-crucible/4/4.5.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.5.2/.env | 0 .../fisheye-crucible/4/4.5.2/Dockerfile | 0 .../fisheye-crucible/4/4.5.2}/Makefile | 0 .../4/4.5.2/docker-compose.yml | 0 .../fisheye-crucible/4/4.5.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.5.3/.env | 0 .../fisheye-crucible/4/4.5.3/Dockerfile | 0 .../fisheye-crucible/4/4.5.3}/Makefile | 0 .../4/4.5.3/docker-compose.yml | 0 .../fisheye-crucible/4/4.5.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.5.4/.env | 0 .../fisheye-crucible/4/4.5.4/Dockerfile | 0 .../fisheye-crucible/4/4.5.4}/Makefile | 0 .../4/4.5.4/docker-compose.yml | 0 .../fisheye-crucible/4/4.5.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.6.0/.env | 0 .../fisheye-crucible/4/4.6.0/Dockerfile | 0 .../fisheye-crucible/4/4.6.0}/Makefile | 0 .../4/4.6.0/docker-compose.yml | 0 .../fisheye-crucible/4/4.6.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.6.1/.env | 0 .../fisheye-crucible/4/4.6.1/Dockerfile | 0 .../fisheye-crucible/4/4.6.1}/Makefile | 0 .../4/4.6.1/docker-compose.yml | 0 .../fisheye-crucible/4/4.6.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.7.0/.env | 0 .../fisheye-crucible/4/4.7.0/Dockerfile | 0 .../fisheye-crucible/4/4.7.0}/Makefile | 0 .../4/4.7.0/docker-compose.yml | 0 .../fisheye-crucible/4/4.7.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.7.1/.env | 0 .../fisheye-crucible/4/4.7.1/Dockerfile | 0 .../fisheye-crucible/4/4.7.1}/Makefile | 0 .../4/4.7.1/docker-compose.yml | 0 .../fisheye-crucible/4/4.7.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.7.2/.env | 0 .../fisheye-crucible/4/4.7.2/Dockerfile | 0 .../fisheye-crucible/4/4.7.2}/Makefile | 0 .../4/4.7.2/docker-compose.yml | 0 .../fisheye-crucible/4/4.7.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.7.3/.env | 0 .../fisheye-crucible/4/4.7.3/Dockerfile | 0 .../fisheye-crucible/4/4.7.3}/Makefile | 0 .../4/4.7.3/docker-compose.yml | 0 .../fisheye-crucible/4/4.7.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.8.0/.env | 0 .../fisheye-crucible/4/4.8.0/Dockerfile | 0 .../fisheye-crucible/4/4.8.0}/Makefile | 0 .../4/4.8.0/docker-compose.yml | 0 .../fisheye-crucible/4/4.8.0/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.8.1/.env | 0 .../fisheye-crucible/4/4.8.1/Dockerfile | 0 .../fisheye-crucible/4/4.8.1}/Makefile | 0 .../4/4.8.1/docker-compose.yml | 0 .../fisheye-crucible/4/4.8.1/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.8.2/.env | 0 .../fisheye-crucible/4/4.8.2/Dockerfile | 0 .../fisheye-crucible/4/4.8.2}/Makefile | 0 .../4/4.8.2/docker-compose.yml | 0 .../fisheye-crucible/4/4.8.2/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.8.3/.env | 0 .../fisheye-crucible/4/4.8.3/Dockerfile | 0 .../fisheye-crucible/4/4.8.3}/Makefile | 0 .../4/4.8.3/docker-compose.yml | 0 .../fisheye-crucible/4/4.8.3/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.8.4/.env | 0 .../fisheye-crucible/4/4.8.4/Dockerfile | 0 .../fisheye-crucible/4/4.8.4}/Makefile | 0 .../4/4.8.4/docker-compose.yml | 0 .../fisheye-crucible/4/4.8.4/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.8.5/.env | 0 .../fisheye-crucible/4/4.8.5/Dockerfile | 0 .../fisheye-crucible/4/4.8.5}/Makefile | 0 .../4/4.8.5/docker-compose.yml | 0 .../fisheye-crucible/4/4.8.5/entrypoint.sh | 0 .../atlassian/fisheye-crucible/4/4.8.6/.env | 0 .../fisheye-crucible/4/4.8.6/Dockerfile | 0 .../fisheye-crucible/4/4.8.6}/Makefile | 0 .../4/4.8.6/docker-compose.yml | 0 .../fisheye-crucible/4/4.8.6/entrypoint.sh | 0 .../atlassian/fisheye-crucible/README.md | 0 .../atlassian/fisheye-crucible/latest/.env | 0 .../fisheye-crucible/latest/Dockerfile | 0 .../fisheye-crucible/latest}/Makefile | 0 .../latest/docker-compose.yml | 0 .../fisheye-crucible/latest/entrypoint.sh | 0 .../fisheye-crucible/templates/2/Dockerfile | 0 .../fisheye-crucible/templates/2}/Makefile | 0 .../templates/2/docker-compose.yml | 0 .../templates/2/entrypoint.sh | 0 .../fisheye-crucible/templates/3/Dockerfile | 0 .../fisheye-crucible/templates/3}/Makefile | 0 .../templates/3/docker-compose.yml | 0 .../templates/3/entrypoint.sh | 0 .../fisheye-crucible/templates/4/Dockerfile | 0 .../fisheye-crucible/templates/4}/Makefile | 0 .../templates/4/docker-compose.yml | 0 .../templates/4/entrypoint.sh | 0 .../atlassian/fisheye/1/1.0.1a/.env | 0 .../atlassian/fisheye/1/1.0.1a/Dockerfile | 0 .../atlassian/fisheye/1/1.0.1a}/Makefile | 0 .../fisheye/1/1.0.1a/docker-compose.yml | 0 .../atlassian/fisheye/1/1.0.1a/entrypoint.sh | 0 .../atlassian/fisheye/1/1.1.3/.env | 0 .../atlassian/fisheye/1/1.1.3/Dockerfile | 0 .../atlassian/fisheye/1/1.1.3}/Makefile | 0 .../fisheye/1/1.1.3/docker-compose.yml | 0 .../atlassian/fisheye/1/1.1.3/entrypoint.sh | 0 .../atlassian/fisheye/1/1.2.5/.env | 0 .../atlassian/fisheye/1/1.2.5/Dockerfile | 0 .../atlassian/fisheye/1/1.2.5}/Makefile | 0 .../fisheye/1/1.2.5/docker-compose.yml | 0 .../atlassian/fisheye/1/1.2.5/entrypoint.sh | 0 .../atlassian/fisheye/1/1.3.3/.env | 0 .../atlassian/fisheye/1/1.3.3/Dockerfile | 0 .../atlassian/fisheye/1/1.3.3}/Makefile | 0 .../fisheye/1/1.3.3/docker-compose.yml | 0 .../atlassian/fisheye/1/1.3.3/entrypoint.sh | 0 .../atlassian/fisheye/1/1.3.4/.env | 0 .../atlassian/fisheye/1/1.3.4/Dockerfile | 0 .../atlassian/fisheye/1/1.3.4}/Makefile | 0 .../fisheye/1/1.3.4/docker-compose.yml | 0 .../atlassian/fisheye/1/1.3.4/entrypoint.sh | 0 .../atlassian/fisheye/1/1.3.5/.env | 0 .../atlassian/fisheye/1/1.3.5/Dockerfile | 0 .../atlassian/fisheye/1/1.3.5}/Makefile | 0 .../fisheye/1/1.3.5/docker-compose.yml | 0 .../atlassian/fisheye/1/1.3.5/entrypoint.sh | 0 .../atlassian/fisheye/1/1.3.6/.env | 0 .../atlassian/fisheye/1/1.3.6/Dockerfile | 0 .../atlassian/fisheye/1/1.3.6}/Makefile | 0 .../fisheye/1/1.3.6/docker-compose.yml | 0 .../atlassian/fisheye/1/1.3.6/entrypoint.sh | 0 .../atlassian/fisheye/1/1.3.7/.env | 0 .../atlassian/fisheye/1/1.3.7/Dockerfile | 0 .../atlassian/fisheye/1/1.3.7}/Makefile | 0 .../fisheye/1/1.3.7/docker-compose.yml | 0 .../atlassian/fisheye/1/1.3.7/entrypoint.sh | 0 .../atlassian/fisheye/1/1.3.8/.env | 0 .../atlassian/fisheye/1/1.3.8/Dockerfile | 0 .../atlassian/fisheye/1/1.3.8}/Makefile | 0 .../fisheye/1/1.3.8/docker-compose.yml | 0 .../atlassian/fisheye/1/1.3.8/entrypoint.sh | 0 .../atlassian/fisheye/1/1.4.1/.env | 0 .../atlassian/fisheye/1/1.4.1/Dockerfile | 0 .../atlassian/fisheye/1/1.4.1}/Makefile | 0 .../fisheye/1/1.4.1/docker-compose.yml | 0 .../atlassian/fisheye/1/1.4.1/entrypoint.sh | 0 .../atlassian/fisheye/1/1.4.2/.env | 0 .../atlassian/fisheye/1/1.4.2/Dockerfile | 0 .../atlassian/fisheye/1/1.4.2}/Makefile | 0 .../fisheye/1/1.4.2/docker-compose.yml | 0 .../atlassian/fisheye/1/1.4.2/entrypoint.sh | 0 .../atlassian/fisheye/1/1.4.3/.env | 0 .../atlassian/fisheye/1/1.4.3/Dockerfile | 0 .../atlassian/fisheye/1/1.4.3}/Makefile | 0 .../fisheye/1/1.4.3/docker-compose.yml | 0 .../atlassian/fisheye/1/1.4.3/entrypoint.sh | 0 .../atlassian/fisheye/1/1.4/.env | 0 .../atlassian/fisheye/1/1.4/Dockerfile | 0 .../atlassian/fisheye/1/1.4}/Makefile | 0 .../fisheye/1/1.4/docker-compose.yml | 0 .../atlassian/fisheye/1/1.4/entrypoint.sh | 0 .../atlassian/fisheye/1/1.5.1/.env | 0 .../atlassian/fisheye/1/1.5.1/Dockerfile | 0 .../atlassian/fisheye/1/1.5.1}/Makefile | 0 .../fisheye/1/1.5.1/docker-compose.yml | 0 .../atlassian/fisheye/1/1.5.1/entrypoint.sh | 0 .../atlassian/fisheye/1/1.5.2/.env | 0 .../atlassian/fisheye/1/1.5.2/Dockerfile | 0 .../atlassian/fisheye/1/1.5.2}/Makefile | 0 .../fisheye/1/1.5.2/docker-compose.yml | 0 .../atlassian/fisheye/1/1.5.2/entrypoint.sh | 0 .../atlassian/fisheye/1/1.5.3/.env | 0 .../atlassian/fisheye/1/1.5.3/Dockerfile | 0 .../atlassian/fisheye/1/1.5.3}/Makefile | 0 .../fisheye/1/1.5.3/docker-compose.yml | 0 .../atlassian/fisheye/1/1.5.3/entrypoint.sh | 0 .../atlassian/fisheye/1/1.5.4/.env | 0 .../atlassian/fisheye/1/1.5.4/Dockerfile | 0 .../atlassian/fisheye/1/1.5.4}/Makefile | 0 .../fisheye/1/1.5.4/docker-compose.yml | 0 .../atlassian/fisheye/1/1.5.4/entrypoint.sh | 0 .../atlassian/fisheye/1/1.5/.env | 0 .../atlassian/fisheye/1/1.5/Dockerfile | 0 .../atlassian/fisheye/1/1.5}/Makefile | 0 .../fisheye/1/1.5/docker-compose.yml | 0 .../atlassian/fisheye/1/1.5/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.0/.env | 0 .../atlassian/fisheye/1/1.6.0/Dockerfile | 0 .../atlassian/fisheye/1/1.6.0}/Makefile | 0 .../fisheye/1/1.6.0/docker-compose.yml | 0 .../atlassian/fisheye/1/1.6.0/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.0Beta1/.env | 0 .../atlassian/fisheye/1/1.6.0Beta1/Dockerfile | 0 .../atlassian/fisheye/1/1.6.0Beta1}/Makefile | 0 .../fisheye/1/1.6.0Beta1/docker-compose.yml | 0 .../fisheye/1/1.6.0Beta1/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.0Beta2/.env | 0 .../atlassian/fisheye/1/1.6.0Beta2/Dockerfile | 0 .../atlassian/fisheye/1/1.6.0Beta2}/Makefile | 0 .../fisheye/1/1.6.0Beta2/docker-compose.yml | 0 .../fisheye/1/1.6.0Beta2/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.1/.env | 0 .../atlassian/fisheye/1/1.6.1/Dockerfile | 0 .../atlassian/fisheye/1/1.6.1}/Makefile | 0 .../fisheye/1/1.6.1/docker-compose.yml | 0 .../atlassian/fisheye/1/1.6.1/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.3/.env | 0 .../atlassian/fisheye/1/1.6.3/Dockerfile | 0 .../atlassian/fisheye/1/1.6.3}/Makefile | 0 .../fisheye/1/1.6.3/docker-compose.yml | 0 .../atlassian/fisheye/1/1.6.3/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.4/.env | 0 .../atlassian/fisheye/1/1.6.4/Dockerfile | 0 .../atlassian/fisheye/1/1.6.4}/Makefile | 0 .../fisheye/1/1.6.4/docker-compose.yml | 0 .../atlassian/fisheye/1/1.6.4/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.5.a/.env | 0 .../atlassian/fisheye/1/1.6.5.a/Dockerfile | 0 .../atlassian/fisheye/1/1.6.5.a}/Makefile | 0 .../fisheye/1/1.6.5.a/docker-compose.yml | 0 .../atlassian/fisheye/1/1.6.5.a/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.5/.env | 0 .../atlassian/fisheye/1/1.6.5/Dockerfile | 0 .../atlassian/fisheye/1/1.6.5}/Makefile | 0 .../fisheye/1/1.6.5/docker-compose.yml | 0 .../atlassian/fisheye/1/1.6.5/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.5a/.env | 0 .../atlassian/fisheye/1/1.6.5a/Dockerfile | 0 .../atlassian/fisheye/1/1.6.5a}/Makefile | 0 .../fisheye/1/1.6.5a/docker-compose.yml | 0 .../atlassian/fisheye/1/1.6.5a/entrypoint.sh | 0 .../atlassian/fisheye/1/1.6.6/.env | 0 .../atlassian/fisheye/1/1.6.6/Dockerfile | 0 .../atlassian/fisheye/1/1.6.6}/Makefile | 0 .../fisheye/1/1.6.6/docker-compose.yml | 0 .../atlassian/fisheye/1/1.6.6/entrypoint.sh | 0 .../atlassian/fisheye/templates/1/Dockerfile | 0 .../atlassian/fisheye/templates/1}/Makefile | 0 .../fisheye/templates/1/docker-compose.yml | 0 .../fisheye/templates/1/entrypoint.sh | 0 .../atlassian/jira/5/5.0.1/.env | 0 .../atlassian/jira/5/5.0.1/Dockerfile | 0 .../atlassian/jira/5/5.0.1}/Makefile | 0 .../atlassian/jira/5/5.0.1/docker-compose.yml | 0 .../atlassian/jira/5/5.0.1/entrypoint.sh | 0 .../atlassian/jira/5/5.0.2/.env | 0 .../atlassian/jira/5/5.0.2/Dockerfile | 0 .../atlassian/jira/5/5.0.2}/Makefile | 0 .../atlassian/jira/5/5.0.2/docker-compose.yml | 0 .../atlassian/jira/5/5.0.2/entrypoint.sh | 0 .../atlassian/jira/5/5.0.3/.env | 0 .../atlassian/jira/5/5.0.3/Dockerfile | 0 .../atlassian/jira/5/5.0.3}/Makefile | 0 .../atlassian/jira/5/5.0.3/docker-compose.yml | 0 .../atlassian/jira/5/5.0.3/entrypoint.sh | 0 .../atlassian/jira/5/5.0.4/.env | 0 .../atlassian/jira/5/5.0.4/Dockerfile | 0 .../atlassian/jira/5/5.0.4}/Makefile | 0 .../atlassian/jira/5/5.0.4/docker-compose.yml | 0 .../atlassian/jira/5/5.0.4/entrypoint.sh | 0 .../atlassian/jira/5/5.0.5/.env | 0 .../atlassian/jira/5/5.0.5/Dockerfile | 0 .../atlassian/jira/5/5.0.5}/Makefile | 0 .../atlassian/jira/5/5.0.5/docker-compose.yml | 0 .../atlassian/jira/5/5.0.5/entrypoint.sh | 0 .../atlassian/jira/5/5.0.6/.env | 0 .../atlassian/jira/5/5.0.6/Dockerfile | 0 .../atlassian/jira/5/5.0.6}/Makefile | 0 .../atlassian/jira/5/5.0.6/docker-compose.yml | 0 .../atlassian/jira/5/5.0.6/entrypoint.sh | 0 .../atlassian/jira/5/5.0.7/.env | 0 .../atlassian/jira/5/5.0.7/Dockerfile | 0 .../atlassian/jira/5/5.0.7}/Makefile | 0 .../atlassian/jira/5/5.0.7/docker-compose.yml | 0 .../atlassian/jira/5/5.0.7/entrypoint.sh | 0 .../{ => ecosystem}/atlassian/jira/5/5.0/.env | 0 .../atlassian/jira/5/5.0/Dockerfile | 0 .../atlassian/jira/5/5.0}/Makefile | 0 .../atlassian/jira/5/5.0/docker-compose.yml | 0 .../atlassian/jira/5/5.0/entrypoint.sh | 0 .../atlassian/jira/5/5.1.1/.env | 0 .../atlassian/jira/5/5.1.1/Dockerfile | 0 .../atlassian/jira/5/5.1.1}/Makefile | 0 .../atlassian/jira/5/5.1.1/docker-compose.yml | 0 .../atlassian/jira/5/5.1.1/entrypoint.sh | 0 .../atlassian/jira/5/5.1.2/.env | 0 .../atlassian/jira/5/5.1.2/Dockerfile | 0 .../atlassian/jira/5/5.1.2}/Makefile | 0 .../atlassian/jira/5/5.1.2/docker-compose.yml | 0 .../atlassian/jira/5/5.1.2/entrypoint.sh | 0 .../atlassian/jira/5/5.1.3/.env | 0 .../atlassian/jira/5/5.1.3/Dockerfile | 0 .../atlassian/jira/5/5.1.3}/Makefile | 0 .../atlassian/jira/5/5.1.3/docker-compose.yml | 0 .../atlassian/jira/5/5.1.3/entrypoint.sh | 0 .../atlassian/jira/5/5.1.4/.env | 0 .../atlassian/jira/5/5.1.4/Dockerfile | 0 .../atlassian/jira/5/5.1.4}/Makefile | 0 .../atlassian/jira/5/5.1.4/docker-compose.yml | 0 .../atlassian/jira/5/5.1.4/entrypoint.sh | 0 .../atlassian/jira/5/5.1.5/.env | 0 .../atlassian/jira/5/5.1.5/Dockerfile | 0 .../atlassian/jira/5/5.1.5}/Makefile | 0 .../atlassian/jira/5/5.1.5/docker-compose.yml | 0 .../atlassian/jira/5/5.1.5/entrypoint.sh | 0 .../atlassian/jira/5/5.1.6/.env | 0 .../atlassian/jira/5/5.1.6/Dockerfile | 0 .../atlassian/jira/5/5.1.6}/Makefile | 0 .../atlassian/jira/5/5.1.6/docker-compose.yml | 0 .../atlassian/jira/5/5.1.6/entrypoint.sh | 0 .../atlassian/jira/5/5.1.7/.env | 0 .../atlassian/jira/5/5.1.7/Dockerfile | 0 .../atlassian/jira/5/5.1.7}/Makefile | 0 .../atlassian/jira/5/5.1.7/docker-compose.yml | 0 .../atlassian/jira/5/5.1.7/entrypoint.sh | 0 .../atlassian/jira/5/5.1.8/.env | 0 .../atlassian/jira/5/5.1.8/Dockerfile | 0 .../atlassian/jira/5/5.1.8}/Makefile | 0 .../atlassian/jira/5/5.1.8/docker-compose.yml | 0 .../atlassian/jira/5/5.1.8/entrypoint.sh | 0 .../{ => ecosystem}/atlassian/jira/5/5.1/.env | 0 .../atlassian/jira/5/5.1/Dockerfile | 0 .../atlassian/jira/5/5.1}/Makefile | 0 .../atlassian/jira/5/5.1/docker-compose.yml | 0 .../atlassian/jira/5/5.1/entrypoint.sh | 0 .../atlassian/jira/5/5.2.1/.env | 0 .../atlassian/jira/5/5.2.1/Dockerfile | 0 .../atlassian/jira/5/5.2.1}/Makefile | 0 .../atlassian/jira/5/5.2.1/docker-compose.yml | 0 .../atlassian/jira/5/5.2.1/entrypoint.sh | 0 .../atlassian/jira/5/5.2.10/.env | 0 .../atlassian/jira/5/5.2.10/Dockerfile | 0 .../atlassian/jira/5/5.2.10}/Makefile | 0 .../jira/5/5.2.10/docker-compose.yml | 0 .../atlassian/jira/5/5.2.10/entrypoint.sh | 0 .../atlassian/jira/5/5.2.11/.env | 0 .../atlassian/jira/5/5.2.11/Dockerfile | 0 .../atlassian/jira/5/5.2.11}/Makefile | 0 .../jira/5/5.2.11/docker-compose.yml | 0 .../atlassian/jira/5/5.2.11/entrypoint.sh | 0 .../atlassian/jira/5/5.2.2/.env | 0 .../atlassian/jira/5/5.2.2/Dockerfile | 0 .../atlassian/jira/5/5.2.2}/Makefile | 0 .../atlassian/jira/5/5.2.2/docker-compose.yml | 0 .../atlassian/jira/5/5.2.2/entrypoint.sh | 0 .../atlassian/jira/5/5.2.3/.env | 0 .../atlassian/jira/5/5.2.3/Dockerfile | 0 .../atlassian/jira/5/5.2.3}/Makefile | 0 .../atlassian/jira/5/5.2.3/docker-compose.yml | 0 .../atlassian/jira/5/5.2.3/entrypoint.sh | 0 .../atlassian/jira/5/5.2.4.1/.env | 0 .../atlassian/jira/5/5.2.4.1/Dockerfile | 0 .../atlassian/jira/5/5.2.4.1}/Makefile | 0 .../jira/5/5.2.4.1/docker-compose.yml | 0 .../atlassian/jira/5/5.2.4.1/entrypoint.sh | 0 .../atlassian/jira/5/5.2.4/.env | 0 .../atlassian/jira/5/5.2.4/Dockerfile | 0 .../atlassian/jira/5/5.2.4}/Makefile | 0 .../atlassian/jira/5/5.2.4/docker-compose.yml | 0 .../atlassian/jira/5/5.2.4/entrypoint.sh | 0 .../atlassian/jira/5/5.2.5/.env | 0 .../atlassian/jira/5/5.2.5/Dockerfile | 0 .../atlassian/jira/5/5.2.5}/Makefile | 0 .../atlassian/jira/5/5.2.5/docker-compose.yml | 0 .../atlassian/jira/5/5.2.5/entrypoint.sh | 0 .../atlassian/jira/5/5.2.6/.env | 0 .../atlassian/jira/5/5.2.6/Dockerfile | 0 .../atlassian/jira/5/5.2.6}/Makefile | 0 .../atlassian/jira/5/5.2.6/docker-compose.yml | 0 .../atlassian/jira/5/5.2.6/entrypoint.sh | 0 .../atlassian/jira/5/5.2.7/.env | 0 .../atlassian/jira/5/5.2.7/Dockerfile | 0 .../atlassian/jira/5/5.2.7}/Makefile | 0 .../atlassian/jira/5/5.2.7/docker-compose.yml | 0 .../atlassian/jira/5/5.2.7/entrypoint.sh | 0 .../atlassian/jira/5/5.2.8/.env | 0 .../atlassian/jira/5/5.2.8/Dockerfile | 0 .../atlassian/jira/5/5.2.8}/Makefile | 0 .../atlassian/jira/5/5.2.8/docker-compose.yml | 0 .../atlassian/jira/5/5.2.8/entrypoint.sh | 0 .../atlassian/jira/5/5.2.9/.env | 0 .../atlassian/jira/5/5.2.9/Dockerfile | 0 .../atlassian/jira/5/5.2.9}/Makefile | 0 .../atlassian/jira/5/5.2.9/docker-compose.yml | 0 .../atlassian/jira/5/5.2.9/entrypoint.sh | 0 .../{ => ecosystem}/atlassian/jira/5/5.2/.env | 0 .../atlassian/jira/5/5.2/Dockerfile | 0 .../atlassian/jira/5/5.2}/Makefile | 0 .../atlassian/jira/5/5.2/docker-compose.yml | 0 .../atlassian/jira/5/5.2/entrypoint.sh | 0 .../atlassian/jira/6/6.0.1/.env | 0 .../atlassian/jira/6/6.0.1/Dockerfile | 0 .../atlassian/jira/6/6.0.1}/Makefile | 0 .../atlassian/jira/6/6.0.1/docker-compose.yml | 0 .../atlassian/jira/6/6.0.1/entrypoint.sh | 0 .../atlassian/jira/6/6.0.2/.env | 0 .../atlassian/jira/6/6.0.2/Dockerfile | 0 .../atlassian/jira/6/6.0.2}/Makefile | 0 .../atlassian/jira/6/6.0.2/docker-compose.yml | 0 .../atlassian/jira/6/6.0.2/entrypoint.sh | 0 .../atlassian/jira/6/6.0.3/.env | 0 .../atlassian/jira/6/6.0.3/Dockerfile | 0 .../atlassian/jira/6/6.0.3}/Makefile | 0 .../atlassian/jira/6/6.0.3/docker-compose.yml | 0 .../atlassian/jira/6/6.0.3/entrypoint.sh | 0 .../atlassian/jira/6/6.0.4/.env | 0 .../atlassian/jira/6/6.0.4/Dockerfile | 0 .../atlassian/jira/6/6.0.4}/Makefile | 0 .../atlassian/jira/6/6.0.4/docker-compose.yml | 0 .../atlassian/jira/6/6.0.4/entrypoint.sh | 0 .../atlassian/jira/6/6.0.5/.env | 0 .../atlassian/jira/6/6.0.5/Dockerfile | 0 .../atlassian/jira/6/6.0.5}/Makefile | 0 .../atlassian/jira/6/6.0.5/docker-compose.yml | 0 .../atlassian/jira/6/6.0.5/entrypoint.sh | 0 .../atlassian/jira/6/6.0.6/.env | 0 .../atlassian/jira/6/6.0.6/Dockerfile | 0 .../atlassian/jira/6/6.0.6}/Makefile | 0 .../atlassian/jira/6/6.0.6/docker-compose.yml | 0 .../atlassian/jira/6/6.0.6/entrypoint.sh | 0 .../atlassian/jira/6/6.0.7/.env | 0 .../atlassian/jira/6/6.0.7/Dockerfile | 0 .../atlassian/jira/6/6.0.7}/Makefile | 0 .../atlassian/jira/6/6.0.7/docker-compose.yml | 0 .../atlassian/jira/6/6.0.7/entrypoint.sh | 0 .../atlassian/jira/6/6.0.8/.env | 0 .../atlassian/jira/6/6.0.8/Dockerfile | 0 .../atlassian/jira/6/6.0.8}/Makefile | 0 .../atlassian/jira/6/6.0.8/docker-compose.yml | 0 .../atlassian/jira/6/6.0.8/entrypoint.sh | 0 .../{ => ecosystem}/atlassian/jira/6/6.0/.env | 0 .../atlassian/jira/6/6.0/Dockerfile | 0 .../atlassian/jira/6/6.0}/Makefile | 0 .../atlassian/jira/6/6.0/docker-compose.yml | 0 .../atlassian/jira/6/6.0/entrypoint.sh | 0 .../atlassian/jira/6/6.1.1/.env | 0 .../atlassian/jira/6/6.1.1/Dockerfile | 0 .../atlassian/jira/6/6.1.1}/Makefile | 0 .../atlassian/jira/6/6.1.1/docker-compose.yml | 0 .../atlassian/jira/6/6.1.1/entrypoint.sh | 0 .../atlassian/jira/6/6.1.2/.env | 0 .../atlassian/jira/6/6.1.2/Dockerfile | 0 .../atlassian/jira/6/6.1.2}/Makefile | 0 .../atlassian/jira/6/6.1.2/docker-compose.yml | 0 .../atlassian/jira/6/6.1.2/entrypoint.sh | 0 .../atlassian/jira/6/6.1.3/.env | 0 .../atlassian/jira/6/6.1.3/Dockerfile | 0 .../atlassian/jira/6/6.1.3}/Makefile | 0 .../atlassian/jira/6/6.1.3/docker-compose.yml | 0 .../atlassian/jira/6/6.1.3/entrypoint.sh | 0 .../atlassian/jira/6/6.1.4/.env | 0 .../atlassian/jira/6/6.1.4/Dockerfile | 0 .../atlassian/jira/6/6.1.4}/Makefile | 0 .../atlassian/jira/6/6.1.4/docker-compose.yml | 0 .../atlassian/jira/6/6.1.4/entrypoint.sh | 0 .../atlassian/jira/6/6.1.5/.env | 0 .../atlassian/jira/6/6.1.5/Dockerfile | 0 .../atlassian/jira/6/6.1.5}/Makefile | 0 .../atlassian/jira/6/6.1.5/docker-compose.yml | 0 .../atlassian/jira/6/6.1.5/entrypoint.sh | 0 .../atlassian/jira/6/6.1.6/.env | 0 .../atlassian/jira/6/6.1.6/Dockerfile | 0 .../atlassian/jira/6/6.1.6}/Makefile | 0 .../atlassian/jira/6/6.1.6/docker-compose.yml | 0 .../atlassian/jira/6/6.1.6/entrypoint.sh | 0 .../atlassian/jira/6/6.1.7/.env | 0 .../atlassian/jira/6/6.1.7/Dockerfile | 0 .../atlassian/jira/6/6.1.7}/Makefile | 0 .../atlassian/jira/6/6.1.7/docker-compose.yml | 0 .../atlassian/jira/6/6.1.7/entrypoint.sh | 0 .../atlassian/jira/6/6.1.8/.env | 0 .../atlassian/jira/6/6.1.8/Dockerfile | 0 .../atlassian/jira/6/6.1.8}/Makefile | 0 .../atlassian/jira/6/6.1.8/docker-compose.yml | 0 .../atlassian/jira/6/6.1.8/entrypoint.sh | 0 .../atlassian/jira/6/6.1.9/.env | 0 .../atlassian/jira/6/6.1.9/Dockerfile | 0 .../atlassian/jira/6/6.1.9}/Makefile | 0 .../atlassian/jira/6/6.1.9/docker-compose.yml | 0 .../atlassian/jira/6/6.1.9/entrypoint.sh | 0 .../{ => ecosystem}/atlassian/jira/6/6.1/.env | 0 .../atlassian/jira/6/6.1/Dockerfile | 0 .../atlassian/jira/6/6.1}/Makefile | 0 .../atlassian/jira/6/6.1/docker-compose.yml | 0 .../atlassian/jira/6/6.1/entrypoint.sh | 0 .../atlassian/jira/6/6.2.1/.env | 0 .../atlassian/jira/6/6.2.1/Dockerfile | 0 .../atlassian/jira/6/6.2.1}/Makefile | 0 .../atlassian/jira/6/6.2.1/docker-compose.yml | 0 .../atlassian/jira/6/6.2.1/entrypoint.sh | 0 .../atlassian/jira/6/6.2.2/.env | 0 .../atlassian/jira/6/6.2.2/Dockerfile | 0 .../atlassian/jira/6/6.2.2}/Makefile | 0 .../atlassian/jira/6/6.2.2/docker-compose.yml | 0 .../atlassian/jira/6/6.2.2/entrypoint.sh | 0 .../atlassian/jira/6/6.2.3/.env | 0 .../atlassian/jira/6/6.2.3/Dockerfile | 0 .../atlassian/jira/6/6.2.3}/Makefile | 0 .../atlassian/jira/6/6.2.3/docker-compose.yml | 0 .../atlassian/jira/6/6.2.3/entrypoint.sh | 0 .../atlassian/jira/6/6.2.4/.env | 0 .../atlassian/jira/6/6.2.4/Dockerfile | 0 .../atlassian/jira/6/6.2.4}/Makefile | 0 .../atlassian/jira/6/6.2.4/docker-compose.yml | 0 .../atlassian/jira/6/6.2.4/entrypoint.sh | 0 .../atlassian/jira/6/6.2.5/.env | 0 .../atlassian/jira/6/6.2.5/Dockerfile | 0 .../atlassian/jira/6/6.2.5}/Makefile | 0 .../atlassian/jira/6/6.2.5/docker-compose.yml | 0 .../atlassian/jira/6/6.2.5/entrypoint.sh | 0 .../atlassian/jira/6/6.2.6/.env | 0 .../atlassian/jira/6/6.2.6/Dockerfile | 0 .../atlassian/jira/6/6.2.6}/Makefile | 0 .../atlassian/jira/6/6.2.6/docker-compose.yml | 0 .../atlassian/jira/6/6.2.6/entrypoint.sh | 0 .../atlassian/jira/6/6.2.7/.env | 0 .../atlassian/jira/6/6.2.7/Dockerfile | 0 .../atlassian/jira/6/6.2.7}/Makefile | 0 .../atlassian/jira/6/6.2.7/docker-compose.yml | 0 .../atlassian/jira/6/6.2.7/entrypoint.sh | 0 .../{ => ecosystem}/atlassian/jira/6/6.2/.env | 0 .../atlassian/jira/6/6.2/Dockerfile | 0 .../atlassian/jira/6/6.2}/Makefile | 0 .../atlassian/jira/6/6.2/docker-compose.yml | 0 .../atlassian/jira/6/6.2/entrypoint.sh | 0 .../atlassian/jira/6/6.3.1/.env | 0 .../atlassian/jira/6/6.3.1/Dockerfile | 0 .../atlassian/jira/6/6.3.1}/Makefile | 0 .../atlassian/jira/6/6.3.1/docker-compose.yml | 0 .../atlassian/jira/6/6.3.1/entrypoint.sh | 0 .../atlassian/jira/6/6.3.10/.env | 0 .../atlassian/jira/6/6.3.10/Dockerfile | 0 .../atlassian/jira/6/6.3.10}/Makefile | 0 .../jira/6/6.3.10/docker-compose.yml | 0 .../atlassian/jira/6/6.3.10/entrypoint.sh | 0 .../atlassian/jira/6/6.3.11/.env | 0 .../atlassian/jira/6/6.3.11/Dockerfile | 0 .../atlassian/jira/6/6.3.11}/Makefile | 0 .../jira/6/6.3.11/docker-compose.yml | 0 .../atlassian/jira/6/6.3.11/entrypoint.sh | 0 .../atlassian/jira/6/6.3.12/.env | 0 .../atlassian/jira/6/6.3.12/Dockerfile | 0 .../atlassian/jira/6/6.3.12}/Makefile | 0 .../jira/6/6.3.12/docker-compose.yml | 0 .../atlassian/jira/6/6.3.12/entrypoint.sh | 0 .../atlassian/jira/6/6.3.13/.env | 0 .../atlassian/jira/6/6.3.13/Dockerfile | 0 .../atlassian/jira/6/6.3.13}/Makefile | 0 .../jira/6/6.3.13/docker-compose.yml | 0 .../atlassian/jira/6/6.3.13/entrypoint.sh | 0 .../atlassian/jira/6/6.3.14/.env | 0 .../atlassian/jira/6/6.3.14/Dockerfile | 0 .../atlassian/jira/6/6.3.14}/Makefile | 0 .../jira/6/6.3.14/docker-compose.yml | 0 .../atlassian/jira/6/6.3.14/entrypoint.sh | 0 .../atlassian/jira/6/6.3.15/.env | 0 .../atlassian/jira/6/6.3.15/Dockerfile | 0 .../atlassian/jira/6/6.3.15}/Makefile | 0 .../jira/6/6.3.15/docker-compose.yml | 0 .../atlassian/jira/6/6.3.15/entrypoint.sh | 0 .../atlassian/jira/6/6.3.3/.env | 0 .../atlassian/jira/6/6.3.3/Dockerfile | 0 .../atlassian/jira/6/6.3.3}/Makefile | 0 .../atlassian/jira/6/6.3.3/docker-compose.yml | 0 .../atlassian/jira/6/6.3.3/entrypoint.sh | 0 .../atlassian/jira/6/6.3.4/.env | 0 .../atlassian/jira/6/6.3.4/Dockerfile | 0 .../atlassian/jira/6/6.3.4}/Makefile | 0 .../atlassian/jira/6/6.3.4/docker-compose.yml | 0 .../atlassian/jira/6/6.3.4/entrypoint.sh | 0 .../atlassian/jira/6/6.3.5/.env | 0 .../atlassian/jira/6/6.3.5/Dockerfile | 0 .../atlassian/jira/6/6.3.5}/Makefile | 0 .../atlassian/jira/6/6.3.5/docker-compose.yml | 0 .../atlassian/jira/6/6.3.5/entrypoint.sh | 0 .../atlassian/jira/6/6.3.6/.env | 0 .../atlassian/jira/6/6.3.6/Dockerfile | 0 .../atlassian/jira/6/6.3.6}/Makefile | 0 .../atlassian/jira/6/6.3.6/docker-compose.yml | 0 .../atlassian/jira/6/6.3.6/entrypoint.sh | 0 .../atlassian/jira/6/6.3.7/.env | 0 .../atlassian/jira/6/6.3.7/Dockerfile | 0 .../atlassian/jira/6/6.3.7}/Makefile | 0 .../atlassian/jira/6/6.3.7/docker-compose.yml | 0 .../atlassian/jira/6/6.3.7/entrypoint.sh | 0 .../atlassian/jira/6/6.3.8/.env | 0 .../atlassian/jira/6/6.3.8/Dockerfile | 0 .../atlassian/jira/6/6.3.8}/Makefile | 0 .../atlassian/jira/6/6.3.8/docker-compose.yml | 0 .../atlassian/jira/6/6.3.8/entrypoint.sh | 0 .../atlassian/jira/6/6.3.9/.env | 0 .../atlassian/jira/6/6.3.9/Dockerfile | 0 .../atlassian/jira/6/6.3.9}/Makefile | 0 .../atlassian/jira/6/6.3.9/docker-compose.yml | 0 .../atlassian/jira/6/6.3.9/entrypoint.sh | 0 .../{ => ecosystem}/atlassian/jira/6/6.3/.env | 0 .../atlassian/jira/6/6.3/Dockerfile | 0 .../atlassian/jira/6/6.3}/Makefile | 0 .../atlassian/jira/6/6.3/docker-compose.yml | 0 .../atlassian/jira/6/6.3/entrypoint.sh | 0 .../atlassian/jira/6/6.4.1/.env | 0 .../atlassian/jira/6/6.4.1/Dockerfile | 0 .../atlassian/jira/6/6.4.1}/Makefile | 0 .../atlassian/jira/6/6.4.1/docker-compose.yml | 0 .../atlassian/jira/6/6.4.1/entrypoint.sh | 0 .../atlassian/jira/6/6.4.10/.env | 0 .../atlassian/jira/6/6.4.10/Dockerfile | 0 .../atlassian/jira/6/6.4.10}/Makefile | 0 .../jira/6/6.4.10/docker-compose.yml | 0 .../atlassian/jira/6/6.4.10/entrypoint.sh | 0 .../atlassian/jira/6/6.4.11/.env | 0 .../atlassian/jira/6/6.4.11/Dockerfile | 0 .../atlassian/jira/6/6.4.11}/Makefile | 0 .../jira/6/6.4.11/docker-compose.yml | 0 .../atlassian/jira/6/6.4.11/entrypoint.sh | 0 .../atlassian/jira/6/6.4.12/.env | 0 .../atlassian/jira/6/6.4.12/Dockerfile | 0 .../atlassian/jira/6/6.4.12}/Makefile | 0 .../jira/6/6.4.12/docker-compose.yml | 0 .../atlassian/jira/6/6.4.12/entrypoint.sh | 0 .../atlassian/jira/6/6.4.13/.env | 0 .../atlassian/jira/6/6.4.13/Dockerfile | 0 .../atlassian/jira/6/6.4.13}/Makefile | 0 .../jira/6/6.4.13/docker-compose.yml | 0 .../atlassian/jira/6/6.4.13/entrypoint.sh | 0 .../atlassian/jira/6/6.4.14/.env | 0 .../atlassian/jira/6/6.4.14/Dockerfile | 0 .../atlassian/jira/6/6.4.14}/Makefile | 0 .../jira/6/6.4.14/docker-compose.yml | 0 .../atlassian/jira/6/6.4.14/entrypoint.sh | 0 .../atlassian/jira/6/6.4.2/.env | 0 .../atlassian/jira/6/6.4.2/Dockerfile | 0 .../atlassian/jira/6/6.4.2}/Makefile | 0 .../atlassian/jira/6/6.4.2/docker-compose.yml | 0 .../atlassian/jira/6/6.4.2/entrypoint.sh | 0 .../atlassian/jira/6/6.4.3/.env | 0 .../atlassian/jira/6/6.4.3/Dockerfile | 0 .../atlassian/jira/6/6.4.3}/Makefile | 0 .../atlassian/jira/6/6.4.3/docker-compose.yml | 0 .../atlassian/jira/6/6.4.3/entrypoint.sh | 0 .../atlassian/jira/6/6.4.4/.env | 0 .../atlassian/jira/6/6.4.4/Dockerfile | 0 .../atlassian/jira/6/6.4.4}/Makefile | 0 .../atlassian/jira/6/6.4.4/docker-compose.yml | 0 .../atlassian/jira/6/6.4.4/entrypoint.sh | 0 .../atlassian/jira/6/6.4.5/.env | 0 .../atlassian/jira/6/6.4.5/Dockerfile | 0 .../atlassian/jira/6/6.4.5}/Makefile | 0 .../atlassian/jira/6/6.4.5/docker-compose.yml | 0 .../atlassian/jira/6/6.4.5/entrypoint.sh | 0 .../atlassian/jira/6/6.4.6/.env | 0 .../atlassian/jira/6/6.4.6/Dockerfile | 0 .../atlassian/jira/6/6.4.6}/Makefile | 0 .../atlassian/jira/6/6.4.6/docker-compose.yml | 0 .../atlassian/jira/6/6.4.6/entrypoint.sh | 0 .../atlassian/jira/6/6.4.7/.env | 0 .../atlassian/jira/6/6.4.7/Dockerfile | 0 .../atlassian/jira/6/6.4.7}/Makefile | 0 .../atlassian/jira/6/6.4.7/docker-compose.yml | 0 .../atlassian/jira/6/6.4.7/entrypoint.sh | 0 .../atlassian/jira/6/6.4.8/.env | 0 .../atlassian/jira/6/6.4.8/Dockerfile | 0 .../atlassian/jira/6/6.4.8}/Makefile | 0 .../atlassian/jira/6/6.4.8/docker-compose.yml | 0 .../atlassian/jira/6/6.4.8/entrypoint.sh | 0 .../atlassian/jira/6/6.4.9/.env | 0 .../atlassian/jira/6/6.4.9/Dockerfile | 0 .../atlassian/jira/6/6.4.9}/Makefile | 0 .../atlassian/jira/6/6.4.9/docker-compose.yml | 0 .../atlassian/jira/6/6.4.9/entrypoint.sh | 0 .../{ => ecosystem}/atlassian/jira/6/6.4/.env | 0 .../atlassian/jira/6/6.4/Dockerfile | 0 .../atlassian/jira/6/6.4}/Makefile | 0 .../atlassian/jira/6/6.4/docker-compose.yml | 0 .../atlassian/jira/6/6.4/entrypoint.sh | 0 .../atlassian/jira/7/7.0.0/.env | 0 .../atlassian/jira/7/7.0.0/Dockerfile | 0 .../atlassian/jira/7/7.0.0}/Makefile | 0 .../atlassian/jira/7/7.0.0/docker-compose.yml | 0 .../atlassian/jira/7/7.0.0/entrypoint.sh | 0 .../atlassian/jira/7/7.0.10/.env | 0 .../atlassian/jira/7/7.0.10/Dockerfile | 0 .../atlassian/jira/7/7.0.10}/Makefile | 0 .../jira/7/7.0.10/docker-compose.yml | 0 .../atlassian/jira/7/7.0.10/entrypoint.sh | 0 .../atlassian/jira/7/7.0.11/.env | 0 .../atlassian/jira/7/7.0.11/Dockerfile | 0 .../atlassian/jira/7/7.0.11}/Makefile | 0 .../jira/7/7.0.11/docker-compose.yml | 0 .../atlassian/jira/7/7.0.11/entrypoint.sh | 0 .../atlassian/jira/7/7.0.2/.env | 0 .../atlassian/jira/7/7.0.2/Dockerfile | 0 .../atlassian/jira/7/7.0.2}/Makefile | 0 .../atlassian/jira/7/7.0.2/docker-compose.yml | 0 .../atlassian/jira/7/7.0.2/entrypoint.sh | 0 .../atlassian/jira/7/7.0.4/.env | 0 .../atlassian/jira/7/7.0.4/Dockerfile | 0 .../atlassian/jira/7/7.0.4}/Makefile | 0 .../atlassian/jira/7/7.0.4/docker-compose.yml | 0 .../atlassian/jira/7/7.0.4/entrypoint.sh | 0 .../atlassian/jira/7/7.0.5/.env | 0 .../atlassian/jira/7/7.0.5/Dockerfile | 0 .../atlassian/jira/7/7.0.5}/Makefile | 0 .../atlassian/jira/7/7.0.5/docker-compose.yml | 0 .../atlassian/jira/7/7.0.5/entrypoint.sh | 0 .../atlassian/jira/7/7.1.0/.env | 0 .../atlassian/jira/7/7.1.0/Dockerfile | 0 .../atlassian/jira/7/7.1.0}/Makefile | 0 .../atlassian/jira/7/7.1.0/docker-compose.yml | 0 .../atlassian/jira/7/7.1.0/entrypoint.sh | 0 .../atlassian/jira/7/7.1.1/.env | 0 .../atlassian/jira/7/7.1.1/Dockerfile | 0 .../atlassian/jira/7/7.1.1}/Makefile | 0 .../atlassian/jira/7/7.1.1/docker-compose.yml | 0 .../atlassian/jira/7/7.1.1/entrypoint.sh | 0 .../atlassian/jira/7/7.1.10/.env | 0 .../atlassian/jira/7/7.1.10/Dockerfile | 0 .../atlassian/jira/7/7.1.10}/Makefile | 0 .../jira/7/7.1.10/docker-compose.yml | 0 .../atlassian/jira/7/7.1.10/entrypoint.sh | 0 .../atlassian/jira/7/7.1.2/.env | 0 .../atlassian/jira/7/7.1.2/Dockerfile | 0 .../atlassian/jira/7/7.1.2}/Makefile | 0 .../atlassian/jira/7/7.1.2/docker-compose.yml | 0 .../atlassian/jira/7/7.1.2/entrypoint.sh | 0 .../atlassian/jira/7/7.1.4/.env | 0 .../atlassian/jira/7/7.1.4/Dockerfile | 0 .../atlassian/jira/7/7.1.4}/Makefile | 0 .../atlassian/jira/7/7.1.4/docker-compose.yml | 0 .../atlassian/jira/7/7.1.4/entrypoint.sh | 0 .../atlassian/jira/7/7.1.6/.env | 0 .../atlassian/jira/7/7.1.6/Dockerfile | 0 .../atlassian/jira/7/7.1.6}/Makefile | 0 .../atlassian/jira/7/7.1.6/docker-compose.yml | 0 .../atlassian/jira/7/7.1.6/entrypoint.sh | 0 .../atlassian/jira/7/7.1.7/.env | 0 .../atlassian/jira/7/7.1.7/Dockerfile | 0 .../atlassian/jira/7/7.1.7}/Makefile | 0 .../atlassian/jira/7/7.1.7/docker-compose.yml | 0 .../atlassian/jira/7/7.1.7/entrypoint.sh | 0 .../atlassian/jira/7/7.1.8/.env | 0 .../atlassian/jira/7/7.1.8/Dockerfile | 0 .../atlassian/jira/7/7.1.8}/Makefile | 0 .../atlassian/jira/7/7.1.8/docker-compose.yml | 0 .../atlassian/jira/7/7.1.8/entrypoint.sh | 0 .../atlassian/jira/7/7.1.9/.env | 0 .../atlassian/jira/7/7.1.9/Dockerfile | 0 .../atlassian/jira/7/7.1.9}/Makefile | 0 .../atlassian/jira/7/7.1.9/docker-compose.yml | 0 .../atlassian/jira/7/7.1.9/entrypoint.sh | 0 .../atlassian/jira/7/7.10.0/.env | 0 .../atlassian/jira/7/7.10.0/Dockerfile | 0 .../atlassian/jira/7/7.10.0}/Makefile | 0 .../jira/7/7.10.0/docker-compose.yml | 0 .../atlassian/jira/7/7.10.0/entrypoint.sh | 0 .../atlassian/jira/7/7.10.1/.env | 0 .../atlassian/jira/7/7.10.1/Dockerfile | 0 .../atlassian/jira/7/7.10.1}/Makefile | 0 .../jira/7/7.10.1/docker-compose.yml | 0 .../atlassian/jira/7/7.10.1/entrypoint.sh | 0 .../atlassian/jira/7/7.10.2/.env | 0 .../atlassian/jira/7/7.10.2/Dockerfile | 0 .../atlassian/jira/7/7.10.2}/Makefile | 0 .../jira/7/7.10.2/docker-compose.yml | 0 .../atlassian/jira/7/7.10.2/entrypoint.sh | 0 .../atlassian/jira/7/7.11.0/.env | 0 .../atlassian/jira/7/7.11.0/Dockerfile | 0 .../atlassian/jira/7/7.11.0}/Makefile | 0 .../jira/7/7.11.0/docker-compose.yml | 0 .../atlassian/jira/7/7.11.0/entrypoint.sh | 0 .../atlassian/jira/7/7.11.1/.env | 0 .../atlassian/jira/7/7.11.1/Dockerfile | 0 .../atlassian/jira/7/7.11.1}/Makefile | 0 .../jira/7/7.11.1/docker-compose.yml | 0 .../atlassian/jira/7/7.11.1/entrypoint.sh | 0 .../atlassian/jira/7/7.11.2/.env | 0 .../atlassian/jira/7/7.11.2/Dockerfile | 0 .../atlassian/jira/7/7.11.2}/Makefile | 0 .../jira/7/7.11.2/docker-compose.yml | 0 .../atlassian/jira/7/7.11.2/entrypoint.sh | 0 .../atlassian/jira/7/7.12.0/.env | 0 .../atlassian/jira/7/7.12.0/Dockerfile | 0 .../atlassian/jira/7/7.12.0}/Makefile | 0 .../jira/7/7.12.0/docker-compose.yml | 0 .../atlassian/jira/7/7.12.0/entrypoint.sh | 0 .../atlassian/jira/7/7.12.1/.env | 0 .../atlassian/jira/7/7.12.1/Dockerfile | 0 .../atlassian/jira/7/7.12.1}/Makefile | 0 .../jira/7/7.12.1/docker-compose.yml | 0 .../atlassian/jira/7/7.12.1/entrypoint.sh | 0 .../atlassian/jira/7/7.12.3/.env | 0 .../atlassian/jira/7/7.12.3/Dockerfile | 0 .../atlassian/jira/7/7.12.3}/Makefile | 0 .../jira/7/7.12.3/docker-compose.yml | 0 .../atlassian/jira/7/7.12.3/entrypoint.sh | 0 .../atlassian/jira/7/7.13.0/.env | 0 .../atlassian/jira/7/7.13.0/Dockerfile | 0 .../atlassian/jira/7/7.13.0}/Makefile | 0 .../jira/7/7.13.0/docker-compose.yml | 0 .../atlassian/jira/7/7.13.0/entrypoint.sh | 0 .../atlassian/jira/7/7.13.1/.env | 0 .../atlassian/jira/7/7.13.1/Dockerfile | 0 .../atlassian/jira/7/7.13.1}/Makefile | 0 .../jira/7/7.13.1/docker-compose.yml | 0 .../atlassian/jira/7/7.13.1/entrypoint.sh | 0 .../atlassian/jira/7/7.13.11/.env | 0 .../atlassian/jira/7/7.13.11/Dockerfile | 0 .../atlassian/jira/7/7.13.11}/Makefile | 0 .../jira/7/7.13.11/docker-compose.yml | 0 .../atlassian/jira/7/7.13.11/entrypoint.sh | 0 .../atlassian/jira/7/7.13.12/.env | 0 .../atlassian/jira/7/7.13.12/Dockerfile | 0 .../atlassian/jira/7/7.13.12}/Makefile | 0 .../jira/7/7.13.12/docker-compose.yml | 0 .../atlassian/jira/7/7.13.12/entrypoint.sh | 0 .../atlassian/jira/7/7.13.13/.env | 0 .../atlassian/jira/7/7.13.13/Dockerfile | 0 .../atlassian/jira/7/7.13.13}/Makefile | 0 .../jira/7/7.13.13/docker-compose.yml | 0 .../atlassian/jira/7/7.13.13/entrypoint.sh | 0 .../atlassian/jira/7/7.13.14/.env | 0 .../atlassian/jira/7/7.13.14/Dockerfile | 0 .../atlassian/jira/7/7.13.14}/Makefile | 0 .../jira/7/7.13.14/docker-compose.yml | 0 .../atlassian/jira/7/7.13.14/entrypoint.sh | 0 .../atlassian/jira/7/7.13.15/.env | 0 .../atlassian/jira/7/7.13.15/Dockerfile | 0 .../atlassian/jira/7/7.13.15}/Makefile | 0 .../jira/7/7.13.15/docker-compose.yml | 0 .../atlassian/jira/7/7.13.15/entrypoint.sh | 0 .../atlassian/jira/7/7.13.16/.env | 0 .../atlassian/jira/7/7.13.16/Dockerfile | 0 .../atlassian/jira/7/7.13.16}/Makefile | 0 .../jira/7/7.13.16/docker-compose.yml | 0 .../atlassian/jira/7/7.13.16/entrypoint.sh | 0 .../atlassian/jira/7/7.13.17/.env | 0 .../atlassian/jira/7/7.13.17/Dockerfile | 0 .../atlassian/jira/7/7.13.17}/Makefile | 0 .../jira/7/7.13.17/docker-compose.yml | 0 .../atlassian/jira/7/7.13.17/entrypoint.sh | 0 .../atlassian/jira/7/7.13.18/.env | 0 .../atlassian/jira/7/7.13.18/Dockerfile | 0 .../atlassian/jira/7/7.13.18}/Makefile | 0 .../jira/7/7.13.18/docker-compose.yml | 0 .../atlassian/jira/7/7.13.18/entrypoint.sh | 0 .../atlassian/jira/7/7.13.2/.env | 0 .../atlassian/jira/7/7.13.2/Dockerfile | 0 .../atlassian/jira/7/7.13.2}/Makefile | 0 .../jira/7/7.13.2/docker-compose.yml | 0 .../atlassian/jira/7/7.13.2/entrypoint.sh | 0 .../atlassian/jira/7/7.13.3/.env | 0 .../atlassian/jira/7/7.13.3/Dockerfile | 0 .../atlassian/jira/7/7.13.3}/Makefile | 0 .../jira/7/7.13.3/docker-compose.yml | 0 .../atlassian/jira/7/7.13.3/entrypoint.sh | 0 .../atlassian/jira/7/7.13.4/.env | 0 .../atlassian/jira/7/7.13.4/Dockerfile | 0 .../atlassian/jira/7/7.13.4}/Makefile | 0 .../jira/7/7.13.4/docker-compose.yml | 0 .../atlassian/jira/7/7.13.4/entrypoint.sh | 0 .../atlassian/jira/7/7.13.5/.env | 0 .../atlassian/jira/7/7.13.5/Dockerfile | 0 .../atlassian/jira/7/7.13.5}/Makefile | 0 .../jira/7/7.13.5/docker-compose.yml | 0 .../atlassian/jira/7/7.13.5/entrypoint.sh | 0 .../atlassian/jira/7/7.13.6/.env | 0 .../atlassian/jira/7/7.13.6/Dockerfile | 0 .../atlassian/jira/7/7.13.6}/Makefile | 0 .../jira/7/7.13.6/docker-compose.yml | 0 .../atlassian/jira/7/7.13.6/entrypoint.sh | 0 .../atlassian/jira/7/7.13.8/.env | 0 .../atlassian/jira/7/7.13.8/Dockerfile | 0 .../atlassian/jira/7/7.13.8}/Makefile | 0 .../jira/7/7.13.8/docker-compose.yml | 0 .../atlassian/jira/7/7.13.8/entrypoint.sh | 0 .../atlassian/jira/7/7.13.9/.env | 0 .../atlassian/jira/7/7.13.9/Dockerfile | 0 .../atlassian/jira/7/7.13.9}/Makefile | 0 .../jira/7/7.13.9/docker-compose.yml | 0 .../atlassian/jira/7/7.13.9/entrypoint.sh | 0 .../atlassian/jira/7/7.2.0/.env | 0 .../atlassian/jira/7/7.2.0/Dockerfile | 0 .../atlassian/jira/7/7.2.0}/Makefile | 0 .../atlassian/jira/7/7.2.0/docker-compose.yml | 0 .../atlassian/jira/7/7.2.0/entrypoint.sh | 0 .../atlassian/jira/7/7.2.1/.env | 0 .../atlassian/jira/7/7.2.1/Dockerfile | 0 .../atlassian/jira/7/7.2.1}/Makefile | 0 .../atlassian/jira/7/7.2.1/docker-compose.yml | 0 .../atlassian/jira/7/7.2.1/entrypoint.sh | 0 .../atlassian/jira/7/7.2.10/.env | 0 .../atlassian/jira/7/7.2.10/Dockerfile | 0 .../atlassian/jira/7/7.2.10}/Makefile | 0 .../jira/7/7.2.10/docker-compose.yml | 0 .../atlassian/jira/7/7.2.10/entrypoint.sh | 0 .../atlassian/jira/7/7.2.11/.env | 0 .../atlassian/jira/7/7.2.11/Dockerfile | 0 .../atlassian/jira/7/7.2.11}/Makefile | 0 .../jira/7/7.2.11/docker-compose.yml | 0 .../atlassian/jira/7/7.2.11/entrypoint.sh | 0 .../atlassian/jira/7/7.2.12/.env | 0 .../atlassian/jira/7/7.2.12/Dockerfile | 0 .../atlassian/jira/7/7.2.12}/Makefile | 0 .../jira/7/7.2.12/docker-compose.yml | 0 .../atlassian/jira/7/7.2.12/entrypoint.sh | 0 .../atlassian/jira/7/7.2.13/.env | 0 .../atlassian/jira/7/7.2.13/Dockerfile | 0 .../atlassian/jira/7/7.2.13}/Makefile | 0 .../jira/7/7.2.13/docker-compose.yml | 0 .../atlassian/jira/7/7.2.13/entrypoint.sh | 0 .../atlassian/jira/7/7.2.14/.env | 0 .../atlassian/jira/7/7.2.14/Dockerfile | 0 .../atlassian/jira/7/7.2.14}/Makefile | 0 .../jira/7/7.2.14/docker-compose.yml | 0 .../atlassian/jira/7/7.2.14/entrypoint.sh | 0 .../atlassian/jira/7/7.2.15/.env | 0 .../atlassian/jira/7/7.2.15/Dockerfile | 0 .../atlassian/jira/7/7.2.15}/Makefile | 0 .../jira/7/7.2.15/docker-compose.yml | 0 .../atlassian/jira/7/7.2.15/entrypoint.sh | 0 .../atlassian/jira/7/7.2.2/.env | 0 .../atlassian/jira/7/7.2.2/Dockerfile | 0 .../atlassian/jira/7/7.2.2}/Makefile | 0 .../atlassian/jira/7/7.2.2/docker-compose.yml | 0 .../atlassian/jira/7/7.2.2/entrypoint.sh | 0 .../atlassian/jira/7/7.2.3/.env | 0 .../atlassian/jira/7/7.2.3/Dockerfile | 0 .../atlassian/jira/7/7.2.3}/Makefile | 0 .../atlassian/jira/7/7.2.3/docker-compose.yml | 0 .../atlassian/jira/7/7.2.3/entrypoint.sh | 0 .../atlassian/jira/7/7.2.4/.env | 0 .../atlassian/jira/7/7.2.4/Dockerfile | 0 .../atlassian/jira/7/7.2.4}/Makefile | 0 .../atlassian/jira/7/7.2.4/docker-compose.yml | 0 .../atlassian/jira/7/7.2.4/entrypoint.sh | 0 .../atlassian/jira/7/7.2.6/.env | 0 .../atlassian/jira/7/7.2.6/Dockerfile | 0 .../atlassian/jira/7/7.2.6}/Makefile | 0 .../atlassian/jira/7/7.2.6/docker-compose.yml | 0 .../atlassian/jira/7/7.2.6/entrypoint.sh | 0 .../atlassian/jira/7/7.2.7/.env | 0 .../atlassian/jira/7/7.2.7/Dockerfile | 0 .../atlassian/jira/7/7.2.7}/Makefile | 0 .../atlassian/jira/7/7.2.7/docker-compose.yml | 0 .../atlassian/jira/7/7.2.7/entrypoint.sh | 0 .../atlassian/jira/7/7.2.8/.env | 0 .../atlassian/jira/7/7.2.8/Dockerfile | 0 .../atlassian/jira/7/7.2.8}/Makefile | 0 .../atlassian/jira/7/7.2.8/docker-compose.yml | 0 .../atlassian/jira/7/7.2.8/entrypoint.sh | 0 .../atlassian/jira/7/7.2.9/.env | 0 .../atlassian/jira/7/7.2.9/Dockerfile | 0 .../atlassian/jira/7/7.2.9}/Makefile | 0 .../atlassian/jira/7/7.2.9/docker-compose.yml | 0 .../atlassian/jira/7/7.2.9/entrypoint.sh | 0 .../atlassian/jira/7/7.3.0/.env | 0 .../atlassian/jira/7/7.3.0/Dockerfile | 0 .../atlassian/jira/7/7.3.0}/Makefile | 0 .../atlassian/jira/7/7.3.0/docker-compose.yml | 0 .../atlassian/jira/7/7.3.0/entrypoint.sh | 0 .../atlassian/jira/7/7.3.1/.env | 0 .../atlassian/jira/7/7.3.1/Dockerfile | 0 .../atlassian/jira/7/7.3.1}/Makefile | 0 .../atlassian/jira/7/7.3.1/docker-compose.yml | 0 .../atlassian/jira/7/7.3.1/entrypoint.sh | 0 .../atlassian/jira/7/7.3.2/.env | 0 .../atlassian/jira/7/7.3.2/Dockerfile | 0 .../atlassian/jira/7/7.3.2}/Makefile | 0 .../atlassian/jira/7/7.3.2/docker-compose.yml | 0 .../atlassian/jira/7/7.3.2/entrypoint.sh | 0 .../atlassian/jira/7/7.3.3/.env | 0 .../atlassian/jira/7/7.3.3/Dockerfile | 0 .../atlassian/jira/7/7.3.3}/Makefile | 0 .../atlassian/jira/7/7.3.3/docker-compose.yml | 0 .../atlassian/jira/7/7.3.3/entrypoint.sh | 0 .../atlassian/jira/7/7.3.4/.env | 0 .../atlassian/jira/7/7.3.4/Dockerfile | 0 .../atlassian/jira/7/7.3.4}/Makefile | 0 .../atlassian/jira/7/7.3.4/docker-compose.yml | 0 .../atlassian/jira/7/7.3.4/entrypoint.sh | 0 .../atlassian/jira/7/7.3.5/.env | 0 .../atlassian/jira/7/7.3.5/Dockerfile | 0 .../atlassian/jira/7/7.3.5}/Makefile | 0 .../atlassian/jira/7/7.3.5/docker-compose.yml | 0 .../atlassian/jira/7/7.3.5/entrypoint.sh | 0 .../atlassian/jira/7/7.3.6/.env | 0 .../atlassian/jira/7/7.3.6/Dockerfile | 0 .../atlassian/jira/7/7.3.6}/Makefile | 0 .../atlassian/jira/7/7.3.6/docker-compose.yml | 0 .../atlassian/jira/7/7.3.6/entrypoint.sh | 0 .../atlassian/jira/7/7.3.7/.env | 0 .../atlassian/jira/7/7.3.7/Dockerfile | 0 .../atlassian/jira/7/7.3.7}/Makefile | 0 .../atlassian/jira/7/7.3.7/docker-compose.yml | 0 .../atlassian/jira/7/7.3.7/entrypoint.sh | 0 .../atlassian/jira/7/7.3.8/.env | 0 .../atlassian/jira/7/7.3.8/Dockerfile | 0 .../atlassian/jira/7/7.3.8}/Makefile | 0 .../atlassian/jira/7/7.3.8/docker-compose.yml | 0 .../atlassian/jira/7/7.3.8/entrypoint.sh | 0 .../atlassian/jira/7/7.3.9/.env | 0 .../atlassian/jira/7/7.3.9/Dockerfile | 0 .../atlassian/jira/7/7.3.9}/Makefile | 0 .../atlassian/jira/7/7.3.9/docker-compose.yml | 0 .../atlassian/jira/7/7.3.9/entrypoint.sh | 0 .../atlassian/jira/7/7.4.0/.env | 0 .../atlassian/jira/7/7.4.0/Dockerfile | 0 .../atlassian/jira/7/7.4.0}/Makefile | 0 .../atlassian/jira/7/7.4.0/docker-compose.yml | 0 .../atlassian/jira/7/7.4.0/entrypoint.sh | 0 .../atlassian/jira/7/7.4.1/.env | 0 .../atlassian/jira/7/7.4.1/Dockerfile | 0 .../atlassian/jira/7/7.4.1}/Makefile | 0 .../atlassian/jira/7/7.4.1/docker-compose.yml | 0 .../atlassian/jira/7/7.4.1/entrypoint.sh | 0 .../atlassian/jira/7/7.4.2/.env | 0 .../atlassian/jira/7/7.4.2/Dockerfile | 0 .../atlassian/jira/7/7.4.2}/Makefile | 0 .../atlassian/jira/7/7.4.2/docker-compose.yml | 0 .../atlassian/jira/7/7.4.2/entrypoint.sh | 0 .../atlassian/jira/7/7.4.3/.env | 0 .../atlassian/jira/7/7.4.3/Dockerfile | 0 .../atlassian/jira/7/7.4.3}/Makefile | 0 .../atlassian/jira/7/7.4.3/docker-compose.yml | 0 .../atlassian/jira/7/7.4.3/entrypoint.sh | 0 .../atlassian/jira/7/7.4.4/.env | 0 .../atlassian/jira/7/7.4.4/Dockerfile | 0 .../atlassian/jira/7/7.4.4}/Makefile | 0 .../atlassian/jira/7/7.4.4/docker-compose.yml | 0 .../atlassian/jira/7/7.4.4/entrypoint.sh | 0 .../atlassian/jira/7/7.4.5/.env | 0 .../atlassian/jira/7/7.4.5/Dockerfile | 0 .../atlassian/jira/7/7.4.5}/Makefile | 0 .../atlassian/jira/7/7.4.5/docker-compose.yml | 0 .../atlassian/jira/7/7.4.5/entrypoint.sh | 0 .../atlassian/jira/7/7.4.6/.env | 0 .../atlassian/jira/7/7.4.6/Dockerfile | 0 .../atlassian/jira/7/7.4.6}/Makefile | 0 .../atlassian/jira/7/7.4.6/docker-compose.yml | 0 .../atlassian/jira/7/7.4.6/entrypoint.sh | 0 .../atlassian/jira/7/7.5.0/.env | 0 .../atlassian/jira/7/7.5.0/Dockerfile | 0 .../atlassian/jira/7/7.5.0}/Makefile | 0 .../atlassian/jira/7/7.5.0/docker-compose.yml | 0 .../atlassian/jira/7/7.5.0/entrypoint.sh | 0 .../atlassian/jira/7/7.5.1/.env | 0 .../atlassian/jira/7/7.5.1/Dockerfile | 0 .../atlassian/jira/7/7.5.1}/Makefile | 0 .../atlassian/jira/7/7.5.1/docker-compose.yml | 0 .../atlassian/jira/7/7.5.1/entrypoint.sh | 0 .../atlassian/jira/7/7.5.2/.env | 0 .../atlassian/jira/7/7.5.2/Dockerfile | 0 .../atlassian/jira/7/7.5.2}/Makefile | 0 .../atlassian/jira/7/7.5.2/docker-compose.yml | 0 .../atlassian/jira/7/7.5.2/entrypoint.sh | 0 .../atlassian/jira/7/7.5.3/.env | 0 .../atlassian/jira/7/7.5.3/Dockerfile | 0 .../atlassian/jira/7/7.5.3}/Makefile | 0 .../atlassian/jira/7/7.5.3/docker-compose.yml | 0 .../atlassian/jira/7/7.5.3/entrypoint.sh | 0 .../atlassian/jira/7/7.5.4/.env | 0 .../atlassian/jira/7/7.5.4/Dockerfile | 0 .../atlassian/jira/7/7.5.4}/Makefile | 0 .../atlassian/jira/7/7.5.4/docker-compose.yml | 0 .../atlassian/jira/7/7.5.4/entrypoint.sh | 0 .../atlassian/jira/7/7.6.0/.env | 0 .../atlassian/jira/7/7.6.0/Dockerfile | 0 .../atlassian/jira/7/7.6.0}/Makefile | 0 .../atlassian/jira/7/7.6.0/docker-compose.yml | 0 .../atlassian/jira/7/7.6.0/entrypoint.sh | 0 .../atlassian/jira/7/7.6.1/.env | 0 .../atlassian/jira/7/7.6.1/Dockerfile | 0 .../atlassian/jira/7/7.6.1}/Makefile | 0 .../atlassian/jira/7/7.6.1/docker-compose.yml | 0 .../atlassian/jira/7/7.6.1/entrypoint.sh | 0 .../atlassian/jira/7/7.6.10/.env | 0 .../atlassian/jira/7/7.6.10/Dockerfile | 0 .../atlassian/jira/7/7.6.10}/Makefile | 0 .../jira/7/7.6.10/docker-compose.yml | 0 .../atlassian/jira/7/7.6.10/entrypoint.sh | 0 .../atlassian/jira/7/7.6.11/.env | 0 .../atlassian/jira/7/7.6.11/Dockerfile | 0 .../atlassian/jira/7/7.6.11}/Makefile | 0 .../jira/7/7.6.11/docker-compose.yml | 0 .../atlassian/jira/7/7.6.11/entrypoint.sh | 0 .../atlassian/jira/7/7.6.12/.env | 0 .../atlassian/jira/7/7.6.12/Dockerfile | 0 .../atlassian/jira/7/7.6.12}/Makefile | 0 .../jira/7/7.6.12/docker-compose.yml | 0 .../atlassian/jira/7/7.6.12/entrypoint.sh | 0 .../atlassian/jira/7/7.6.13/.env | 0 .../atlassian/jira/7/7.6.13/Dockerfile | 0 .../atlassian/jira/7/7.6.13}/Makefile | 0 .../jira/7/7.6.13/docker-compose.yml | 0 .../atlassian/jira/7/7.6.13/entrypoint.sh | 0 .../atlassian/jira/7/7.6.14/.env | 0 .../atlassian/jira/7/7.6.14/Dockerfile | 0 .../atlassian/jira/7/7.6.14}/Makefile | 0 .../jira/7/7.6.14/docker-compose.yml | 0 .../atlassian/jira/7/7.6.14/entrypoint.sh | 0 .../atlassian/jira/7/7.6.15/.env | 0 .../atlassian/jira/7/7.6.15/Dockerfile | 0 .../atlassian/jira/7/7.6.15}/Makefile | 0 .../jira/7/7.6.15/docker-compose.yml | 0 .../atlassian/jira/7/7.6.15/entrypoint.sh | 0 .../atlassian/jira/7/7.6.16/.env | 0 .../atlassian/jira/7/7.6.16/Dockerfile | 0 .../atlassian/jira/7/7.6.16}/Makefile | 0 .../jira/7/7.6.16/docker-compose.yml | 0 .../atlassian/jira/7/7.6.16/entrypoint.sh | 0 .../atlassian/jira/7/7.6.17/.env | 0 .../atlassian/jira/7/7.6.17/Dockerfile | 0 .../atlassian/jira/7/7.6.17}/Makefile | 0 .../jira/7/7.6.17/docker-compose.yml | 0 .../atlassian/jira/7/7.6.17/entrypoint.sh | 0 .../atlassian/jira/7/7.6.2/.env | 0 .../atlassian/jira/7/7.6.2/Dockerfile | 0 .../atlassian/jira/7/7.6.2}/Makefile | 0 .../atlassian/jira/7/7.6.2/docker-compose.yml | 0 .../atlassian/jira/7/7.6.2/entrypoint.sh | 0 .../atlassian/jira/7/7.6.3/.env | 0 .../atlassian/jira/7/7.6.3/Dockerfile | 0 .../atlassian/jira/7/7.6.3}/Makefile | 0 .../atlassian/jira/7/7.6.3/docker-compose.yml | 0 .../atlassian/jira/7/7.6.3/entrypoint.sh | 0 .../atlassian/jira/7/7.6.4/.env | 0 .../atlassian/jira/7/7.6.4/Dockerfile | 0 .../atlassian/jira/7/7.6.4}/Makefile | 0 .../atlassian/jira/7/7.6.4/docker-compose.yml | 0 .../atlassian/jira/7/7.6.4/entrypoint.sh | 0 .../atlassian/jira/7/7.6.6/.env | 0 .../atlassian/jira/7/7.6.6/Dockerfile | 0 .../atlassian/jira/7/7.6.6}/Makefile | 0 .../atlassian/jira/7/7.6.6/docker-compose.yml | 0 .../atlassian/jira/7/7.6.6/entrypoint.sh | 0 .../atlassian/jira/7/7.6.7/.env | 0 .../atlassian/jira/7/7.6.7/Dockerfile | 0 .../atlassian/jira/7/7.6.7}/Makefile | 0 .../atlassian/jira/7/7.6.7/docker-compose.yml | 0 .../atlassian/jira/7/7.6.7/entrypoint.sh | 0 .../atlassian/jira/7/7.6.8/.env | 0 .../atlassian/jira/7/7.6.8/Dockerfile | 0 .../atlassian/jira/7/7.6.8}/Makefile | 0 .../atlassian/jira/7/7.6.8/docker-compose.yml | 0 .../atlassian/jira/7/7.6.8/entrypoint.sh | 0 .../atlassian/jira/7/7.6.9/.env | 0 .../atlassian/jira/7/7.6.9/Dockerfile | 0 .../atlassian/jira/7/7.6.9}/Makefile | 0 .../atlassian/jira/7/7.6.9/docker-compose.yml | 0 .../atlassian/jira/7/7.6.9/entrypoint.sh | 0 .../atlassian/jira/7/7.7.0/.env | 0 .../atlassian/jira/7/7.7.0/Dockerfile | 0 .../atlassian/jira/7/7.7.0}/Makefile | 0 .../atlassian/jira/7/7.7.0/docker-compose.yml | 0 .../atlassian/jira/7/7.7.0/entrypoint.sh | 0 .../atlassian/jira/7/7.7.1/.env | 0 .../atlassian/jira/7/7.7.1/Dockerfile | 0 .../atlassian/jira/7/7.7.1}/Makefile | 0 .../atlassian/jira/7/7.7.1/docker-compose.yml | 0 .../atlassian/jira/7/7.7.1/entrypoint.sh | 0 .../atlassian/jira/7/7.7.2/.env | 0 .../atlassian/jira/7/7.7.2/Dockerfile | 0 .../atlassian/jira/7/7.7.2}/Makefile | 0 .../atlassian/jira/7/7.7.2/docker-compose.yml | 0 .../atlassian/jira/7/7.7.2/entrypoint.sh | 0 .../atlassian/jira/7/7.7.4/.env | 0 .../atlassian/jira/7/7.7.4/Dockerfile | 0 .../atlassian/jira/7/7.7.4}/Makefile | 0 .../atlassian/jira/7/7.7.4/docker-compose.yml | 0 .../atlassian/jira/7/7.7.4/entrypoint.sh | 0 .../atlassian/jira/7/7.8.0/.env | 0 .../atlassian/jira/7/7.8.0/Dockerfile | 0 .../atlassian/jira/7/7.8.0}/Makefile | 0 .../atlassian/jira/7/7.8.0/docker-compose.yml | 0 .../atlassian/jira/7/7.8.0/entrypoint.sh | 0 .../atlassian/jira/7/7.8.1/.env | 0 .../atlassian/jira/7/7.8.1/Dockerfile | 0 .../atlassian/jira/7/7.8.1}/Makefile | 0 .../atlassian/jira/7/7.8.1/docker-compose.yml | 0 .../atlassian/jira/7/7.8.1/entrypoint.sh | 0 .../atlassian/jira/7/7.8.2/.env | 0 .../atlassian/jira/7/7.8.2/Dockerfile | 0 .../atlassian/jira/7/7.8.2}/Makefile | 0 .../atlassian/jira/7/7.8.2/docker-compose.yml | 0 .../atlassian/jira/7/7.8.2/entrypoint.sh | 0 .../atlassian/jira/7/7.8.4/.env | 0 .../atlassian/jira/7/7.8.4/Dockerfile | 0 .../atlassian/jira/7/7.8.4}/Makefile | 0 .../atlassian/jira/7/7.8.4/docker-compose.yml | 0 .../atlassian/jira/7/7.8.4/entrypoint.sh | 0 .../atlassian/jira/7/7.9.0/.env | 0 .../atlassian/jira/7/7.9.0/Dockerfile | 0 .../atlassian/jira/7/7.9.0}/Makefile | 0 .../atlassian/jira/7/7.9.0/docker-compose.yml | 0 .../atlassian/jira/7/7.9.0/entrypoint.sh | 0 .../atlassian/jira/7/7.9.2/.env | 0 .../atlassian/jira/7/7.9.2/Dockerfile | 0 .../atlassian/jira/7/7.9.2}/Makefile | 0 .../atlassian/jira/7/7.9.2/docker-compose.yml | 0 .../atlassian/jira/7/7.9.2/entrypoint.sh | 0 .../atlassian/jira/8/8.0.0/.env | 0 .../atlassian/jira/8/8.0.0/Dockerfile | 0 .../atlassian/jira/8/8.0.0}/Makefile | 0 .../atlassian/jira/8/8.0.0/docker-compose.yml | 0 .../atlassian/jira/8/8.0.0/entrypoint.sh | 0 .../atlassian/jira/8/8.0.2/.env | 0 .../atlassian/jira/8/8.0.2/Dockerfile | 0 .../atlassian/jira/8/8.0.2}/Makefile | 0 .../atlassian/jira/8/8.0.2/docker-compose.yml | 0 .../atlassian/jira/8/8.0.2/entrypoint.sh | 0 .../atlassian/jira/8/8.0.3/.env | 0 .../atlassian/jira/8/8.0.3/Dockerfile | 0 .../atlassian/jira/8/8.0.3}/Makefile | 0 .../atlassian/jira/8/8.0.3/docker-compose.yml | 0 .../atlassian/jira/8/8.0.3/entrypoint.sh | 0 .../atlassian/jira/8/8.1.0/.env | 0 .../atlassian/jira/8/8.1.0/Dockerfile | 0 .../atlassian/jira/8/8.1.0}/Makefile | 0 .../atlassian/jira/8/8.1.0/docker-compose.yml | 0 .../atlassian/jira/8/8.1.0/entrypoint.sh | 0 .../atlassian/jira/8/8.1.1/.env | 0 .../atlassian/jira/8/8.1.1/Dockerfile | 0 .../atlassian/jira/8/8.1.1}/Makefile | 0 .../atlassian/jira/8/8.1.1/docker-compose.yml | 0 .../atlassian/jira/8/8.1.1/entrypoint.sh | 0 .../atlassian/jira/8/8.1.2/.env | 0 .../atlassian/jira/8/8.1.2/Dockerfile | 0 .../atlassian/jira/8/8.1.2}/Makefile | 0 .../atlassian/jira/8/8.1.2/docker-compose.yml | 0 .../atlassian/jira/8/8.1.2/entrypoint.sh | 0 .../atlassian/jira/8/8.1.3/.env | 0 .../atlassian/jira/8/8.1.3/Dockerfile | 0 .../atlassian/jira/8/8.1.3}/Makefile | 0 .../atlassian/jira/8/8.1.3/docker-compose.yml | 0 .../atlassian/jira/8/8.1.3/entrypoint.sh | 0 .../atlassian/jira/8/8.10.0/.env | 0 .../atlassian/jira/8/8.10.0/Dockerfile | 0 .../atlassian/jira/8/8.10.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.10.0}/Makefile | 0 .../jira/8/8.10.0/docker-compose.yml | 0 .../atlassian/jira/8/8.10.0/entrypoint.sh | 0 .../atlassian/jira/8/8.10.1/.env | 0 .../atlassian/jira/8/8.10.1/Dockerfile | 0 .../atlassian/jira/8/8.10.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.10.1}/Makefile | 0 .../jira/8/8.10.1/docker-compose.yml | 0 .../atlassian/jira/8/8.10.1/entrypoint.sh | 0 .../atlassian/jira/8/8.11.0/.env | 0 .../atlassian/jira/8/8.11.0/Dockerfile | 0 .../atlassian/jira/8/8.11.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.11.0}/Makefile | 0 .../jira/8/8.11.0/docker-compose.yml | 0 .../atlassian/jira/8/8.11.0/entrypoint.sh | 0 .../atlassian/jira/8/8.11.1/.env | 0 .../atlassian/jira/8/8.11.1/Dockerfile | 0 .../atlassian/jira/8/8.11.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.11.1}/Makefile | 0 .../jira/8/8.11.1/docker-compose.yml | 0 .../atlassian/jira/8/8.11.1/entrypoint.sh | 0 .../atlassian/jira/8/8.12.0/.env | 0 .../atlassian/jira/8/8.12.0/Dockerfile | 0 .../atlassian/jira/8/8.12.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.12.0}/Makefile | 0 .../jira/8/8.12.0/docker-compose.yml | 0 .../atlassian/jira/8/8.12.0/entrypoint.sh | 0 .../atlassian/jira/8/8.12.1/.env | 0 .../atlassian/jira/8/8.12.1/Dockerfile | 0 .../atlassian/jira/8/8.12.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.12.1}/Makefile | 0 .../jira/8/8.12.1/docker-compose.yml | 0 .../atlassian/jira/8/8.12.1/entrypoint.sh | 0 .../atlassian/jira/8/8.12.2/.env | 0 .../atlassian/jira/8/8.12.2/Dockerfile | 0 .../atlassian/jira/8/8.12.2/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.12.2}/Makefile | 0 .../jira/8/8.12.2/docker-compose.yml | 0 .../atlassian/jira/8/8.12.2/entrypoint.sh | 0 .../atlassian/jira/8/8.12.3/.env | 0 .../atlassian/jira/8/8.12.3/Dockerfile | 0 .../atlassian/jira/8/8.12.3/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.12.3}/Makefile | 0 .../jira/8/8.12.3/docker-compose.yml | 0 .../atlassian/jira/8/8.12.3/entrypoint.sh | 0 .../atlassian/jira/8/8.13.0/.env | 0 .../atlassian/jira/8/8.13.0/Dockerfile | 0 .../atlassian/jira/8/8.13.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.13.0}/Makefile | 0 .../jira/8/8.13.0/docker-compose.yml | 0 .../atlassian/jira/8/8.13.0/entrypoint.sh | 0 .../atlassian/jira/8/8.13.1/.env | 0 .../atlassian/jira/8/8.13.1/Dockerfile | 0 .../atlassian/jira/8/8.13.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.13.1}/Makefile | 0 .../jira/8/8.13.1/docker-compose.yml | 0 .../atlassian/jira/8/8.13.1/entrypoint.sh | 0 .../atlassian/jira/8/8.13.2/.env | 0 .../atlassian/jira/8/8.13.2/Dockerfile | 0 .../atlassian/jira/8/8.13.2/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.13.2}/Makefile | 0 .../jira/8/8.13.2/docker-compose.yml | 0 .../atlassian/jira/8/8.13.2/entrypoint.sh | 0 .../atlassian/jira/8/8.13.3/.env | 0 .../atlassian/jira/8/8.13.3/Dockerfile | 0 .../atlassian/jira/8/8.13.3/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.13.3}/Makefile | 0 .../jira/8/8.13.3/docker-compose.yml | 0 .../atlassian/jira/8/8.13.3/entrypoint.sh | 0 .../atlassian/jira/8/8.13.4/.env | 0 .../atlassian/jira/8/8.13.4/Dockerfile | 0 .../atlassian/jira/8/8.13.4/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.13.4}/Makefile | 0 .../jira/8/8.13.4/docker-compose.yml | 0 .../atlassian/jira/8/8.13.4/entrypoint.sh | 0 .../atlassian/jira/8/8.13.5/.env | 0 .../atlassian/jira/8/8.13.5/Dockerfile | 0 .../atlassian/jira/8/8.13.5/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.13.5}/Makefile | 0 .../jira/8/8.13.5/docker-compose.yml | 0 .../atlassian/jira/8/8.13.5/entrypoint.sh | 0 .../atlassian/jira/8/8.13.6/.env | 0 .../atlassian/jira/8/8.13.6/Dockerfile | 0 .../atlassian/jira/8/8.13.6/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.13.6}/Makefile | 0 .../jira/8/8.13.6/docker-compose.yml | 0 .../atlassian/jira/8/8.13.6/entrypoint.sh | 0 .../atlassian/jira/8/8.13.7/.env | 0 .../atlassian/jira/8/8.13.7/Dockerfile | 0 .../atlassian/jira/8/8.13.7/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.13.7}/Makefile | 0 .../jira/8/8.13.7/docker-compose.yml | 0 .../atlassian/jira/8/8.13.7/entrypoint.sh | 0 .../atlassian/jira/8/8.13.8/.env | 0 .../atlassian/jira/8/8.13.8/Dockerfile | 0 .../atlassian/jira/8/8.13.8/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.13.8}/Makefile | 0 .../jira/8/8.13.8/docker-compose.yml | 0 .../atlassian/jira/8/8.13.8/entrypoint.sh | 0 .../atlassian/jira/8/8.14.0/.env | 0 .../atlassian/jira/8/8.14.0/Dockerfile | 0 .../atlassian/jira/8/8.14.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.14.0}/Makefile | 0 .../jira/8/8.14.0/docker-compose.yml | 0 .../atlassian/jira/8/8.14.0/entrypoint.sh | 0 .../atlassian/jira/8/8.14.1/.env | 0 .../atlassian/jira/8/8.14.1/Dockerfile | 0 .../atlassian/jira/8/8.14.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.14.1}/Makefile | 0 .../jira/8/8.14.1/docker-compose.yml | 0 .../atlassian/jira/8/8.14.1/entrypoint.sh | 0 .../atlassian/jira/8/8.15.0/.env | 0 .../atlassian/jira/8/8.15.0/Dockerfile | 0 .../atlassian/jira/8/8.15.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.15.0}/Makefile | 0 .../jira/8/8.15.0/docker-compose.yml | 0 .../atlassian/jira/8/8.15.0/entrypoint.sh | 0 .../atlassian/jira/8/8.15.1/.env | 0 .../atlassian/jira/8/8.15.1/Dockerfile | 0 .../atlassian/jira/8/8.15.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.15.1}/Makefile | 0 .../jira/8/8.15.1/docker-compose.yml | 0 .../atlassian/jira/8/8.15.1/entrypoint.sh | 0 .../atlassian/jira/8/8.16.0/.env | 0 .../atlassian/jira/8/8.16.0/Dockerfile | 0 .../atlassian/jira/8/8.16.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.16.0}/Makefile | 0 .../jira/8/8.16.0/docker-compose.yml | 0 .../atlassian/jira/8/8.16.0/entrypoint.sh | 0 .../atlassian/jira/8/8.16.1/.env | 0 .../atlassian/jira/8/8.16.1/Dockerfile | 0 .../atlassian/jira/8/8.16.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.16.1}/Makefile | 0 .../jira/8/8.16.1/docker-compose.yml | 0 .../atlassian/jira/8/8.16.1/entrypoint.sh | 0 .../atlassian/jira/8/8.16.2/.env | 0 .../atlassian/jira/8/8.16.2/Dockerfile | 0 .../atlassian/jira/8/8.16.2/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.16.2}/Makefile | 0 .../jira/8/8.16.2/docker-compose.yml | 0 .../atlassian/jira/8/8.16.2/entrypoint.sh | 0 .../atlassian/jira/8/8.17.0/.env | 0 .../atlassian/jira/8/8.17.0/Dockerfile | 0 .../atlassian/jira/8/8.17.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.17.0}/Makefile | 0 .../jira/8/8.17.0/docker-compose.yml | 0 .../atlassian/jira/8/8.17.0/entrypoint.sh | 0 .../atlassian/jira/8/8.17.1/.env | 0 .../atlassian/jira/8/8.17.1/Dockerfile | 0 .../atlassian/jira/8/8.17.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.17.1}/Makefile | 0 .../jira/8/8.17.1/docker-compose.yml | 0 .../atlassian/jira/8/8.17.1/entrypoint.sh | 0 .../atlassian/jira/8/8.2.0/.env | 0 .../atlassian/jira/8/8.2.0/Dockerfile | 0 .../atlassian/jira/8/8.2.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.2.0}/Makefile | 0 .../atlassian/jira/8/8.2.0/docker-compose.yml | 0 .../atlassian/jira/8/8.2.0/entrypoint.sh | 0 .../atlassian/jira/8/8.2.1/.env | 0 .../atlassian/jira/8/8.2.1/Dockerfile | 0 .../atlassian/jira/8/8.2.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.2.1}/Makefile | 0 .../atlassian/jira/8/8.2.1/docker-compose.yml | 0 .../atlassian/jira/8/8.2.1/entrypoint.sh | 0 .../atlassian/jira/8/8.2.2/.env | 0 .../atlassian/jira/8/8.2.2/Dockerfile | 0 .../atlassian/jira/8/8.2.2/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.2.2}/Makefile | 0 .../atlassian/jira/8/8.2.2/docker-compose.yml | 0 .../atlassian/jira/8/8.2.2/entrypoint.sh | 0 .../atlassian/jira/8/8.2.3/.env | 0 .../atlassian/jira/8/8.2.3/Dockerfile | 0 .../atlassian/jira/8/8.2.3/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.2.3}/Makefile | 0 .../atlassian/jira/8/8.2.3/docker-compose.yml | 0 .../atlassian/jira/8/8.2.3/entrypoint.sh | 0 .../atlassian/jira/8/8.2.4/.env | 0 .../atlassian/jira/8/8.2.4/Dockerfile | 0 .../atlassian/jira/8/8.2.4/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.2.4}/Makefile | 0 .../atlassian/jira/8/8.2.4/docker-compose.yml | 0 .../atlassian/jira/8/8.2.4/entrypoint.sh | 0 .../atlassian/jira/8/8.2.5/.env | 0 .../atlassian/jira/8/8.2.5/Dockerfile | 0 .../atlassian/jira/8/8.2.5/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.2.5}/Makefile | 0 .../atlassian/jira/8/8.2.5/docker-compose.yml | 0 .../atlassian/jira/8/8.2.5/entrypoint.sh | 0 .../atlassian/jira/8/8.2.6/.env | 0 .../atlassian/jira/8/8.2.6/Dockerfile | 0 .../atlassian/jira/8/8.2.6/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.2.6}/Makefile | 0 .../atlassian/jira/8/8.2.6/docker-compose.yml | 0 .../atlassian/jira/8/8.2.6/entrypoint.sh | 0 .../atlassian/jira/8/8.3.0/.env | 0 .../atlassian/jira/8/8.3.0/Dockerfile | 0 .../atlassian/jira/8/8.3.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.3.0}/Makefile | 0 .../atlassian/jira/8/8.3.0/docker-compose.yml | 0 .../atlassian/jira/8/8.3.0/entrypoint.sh | 0 .../atlassian/jira/8/8.3.1/.env | 0 .../atlassian/jira/8/8.3.1/Dockerfile | 0 .../atlassian/jira/8/8.3.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.3.1}/Makefile | 0 .../atlassian/jira/8/8.3.1/docker-compose.yml | 0 .../atlassian/jira/8/8.3.1/entrypoint.sh | 0 .../atlassian/jira/8/8.3.2/.env | 0 .../atlassian/jira/8/8.3.2/Dockerfile | 0 .../atlassian/jira/8/8.3.2/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.3.2}/Makefile | 0 .../atlassian/jira/8/8.3.2/docker-compose.yml | 0 .../atlassian/jira/8/8.3.2/entrypoint.sh | 0 .../atlassian/jira/8/8.3.3/.env | 0 .../atlassian/jira/8/8.3.3/Dockerfile | 0 .../atlassian/jira/8/8.3.3/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.3.3}/Makefile | 0 .../atlassian/jira/8/8.3.3/docker-compose.yml | 0 .../atlassian/jira/8/8.3.3/entrypoint.sh | 0 .../atlassian/jira/8/8.3.4/.env | 0 .../atlassian/jira/8/8.3.4/Dockerfile | 0 .../atlassian/jira/8/8.3.4/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.3.4}/Makefile | 0 .../atlassian/jira/8/8.3.4/docker-compose.yml | 0 .../atlassian/jira/8/8.3.4/entrypoint.sh | 0 .../atlassian/jira/8/8.3.5/.env | 0 .../atlassian/jira/8/8.3.5/Dockerfile | 0 .../atlassian/jira/8/8.3.5/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.3.5}/Makefile | 0 .../atlassian/jira/8/8.3.5/docker-compose.yml | 0 .../atlassian/jira/8/8.3.5/entrypoint.sh | 0 .../atlassian/jira/8/8.4.0/.env | 0 .../atlassian/jira/8/8.4.0/Dockerfile | 0 .../atlassian/jira/8/8.4.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.4.0}/Makefile | 0 .../atlassian/jira/8/8.4.0/docker-compose.yml | 0 .../atlassian/jira/8/8.4.0/entrypoint.sh | 0 .../atlassian/jira/8/8.4.1/.env | 0 .../atlassian/jira/8/8.4.1/Dockerfile | 0 .../atlassian/jira/8/8.4.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.4.1}/Makefile | 0 .../atlassian/jira/8/8.4.1/docker-compose.yml | 0 .../atlassian/jira/8/8.4.1/entrypoint.sh | 0 .../atlassian/jira/8/8.4.2/.env | 0 .../atlassian/jira/8/8.4.2/Dockerfile | 0 .../atlassian/jira/8/8.4.2/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.4.2}/Makefile | 0 .../atlassian/jira/8/8.4.2/docker-compose.yml | 0 .../atlassian/jira/8/8.4.2/entrypoint.sh | 0 .../atlassian/jira/8/8.4.3/.env | 0 .../atlassian/jira/8/8.4.3/Dockerfile | 0 .../atlassian/jira/8/8.4.3/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.4.3}/Makefile | 0 .../atlassian/jira/8/8.4.3/docker-compose.yml | 0 .../atlassian/jira/8/8.4.3/entrypoint.sh | 0 .../atlassian/jira/8/8.5.0/.env | 0 .../atlassian/jira/8/8.5.0/Dockerfile | 0 .../atlassian/jira/8/8.5.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.0}/Makefile | 0 .../atlassian/jira/8/8.5.0/docker-compose.yml | 0 .../atlassian/jira/8/8.5.0/entrypoint.sh | 0 .../atlassian/jira/8/8.5.1/.env | 0 .../atlassian/jira/8/8.5.1/Dockerfile | 0 .../atlassian/jira/8/8.5.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.1}/Makefile | 0 .../atlassian/jira/8/8.5.1/docker-compose.yml | 0 .../atlassian/jira/8/8.5.1/entrypoint.sh | 0 .../atlassian/jira/8/8.5.10/.env | 0 .../atlassian/jira/8/8.5.10/Dockerfile | 0 .../atlassian/jira/8/8.5.10/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.10}/Makefile | 0 .../jira/8/8.5.10/docker-compose.yml | 0 .../atlassian/jira/8/8.5.10/entrypoint.sh | 0 .../atlassian/jira/8/8.5.11/.env | 0 .../atlassian/jira/8/8.5.11/Dockerfile | 0 .../atlassian/jira/8/8.5.11/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.11}/Makefile | 0 .../jira/8/8.5.11/docker-compose.yml | 0 .../atlassian/jira/8/8.5.11/entrypoint.sh | 0 .../atlassian/jira/8/8.5.12/.env | 0 .../atlassian/jira/8/8.5.12/Dockerfile | 0 .../atlassian/jira/8/8.5.12/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.12}/Makefile | 0 .../jira/8/8.5.12/docker-compose.yml | 0 .../atlassian/jira/8/8.5.12/entrypoint.sh | 0 .../atlassian/jira/8/8.5.13/.env | 0 .../atlassian/jira/8/8.5.13/Dockerfile | 0 .../atlassian/jira/8/8.5.13/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.13}/Makefile | 0 .../jira/8/8.5.13/docker-compose.yml | 0 .../atlassian/jira/8/8.5.13/entrypoint.sh | 0 .../atlassian/jira/8/8.5.14/.env | 0 .../atlassian/jira/8/8.5.14/Dockerfile | 0 .../atlassian/jira/8/8.5.14/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.14}/Makefile | 0 .../jira/8/8.5.14/docker-compose.yml | 0 .../atlassian/jira/8/8.5.14/entrypoint.sh | 0 .../atlassian/jira/8/8.5.15/.env | 0 .../atlassian/jira/8/8.5.15/Dockerfile | 0 .../atlassian/jira/8/8.5.15/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.15}/Makefile | 0 .../jira/8/8.5.15/docker-compose.yml | 0 .../atlassian/jira/8/8.5.15/entrypoint.sh | 0 .../atlassian/jira/8/8.5.16/.env | 0 .../atlassian/jira/8/8.5.16/Dockerfile | 0 .../atlassian/jira/8/8.5.16/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.16}/Makefile | 0 .../jira/8/8.5.16/docker-compose.yml | 0 .../atlassian/jira/8/8.5.16/entrypoint.sh | 0 .../atlassian/jira/8/8.5.2/.env | 0 .../atlassian/jira/8/8.5.2/Dockerfile | 0 .../atlassian/jira/8/8.5.2/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.2}/Makefile | 0 .../atlassian/jira/8/8.5.2/docker-compose.yml | 0 .../atlassian/jira/8/8.5.2/entrypoint.sh | 0 .../atlassian/jira/8/8.5.3/.env | 0 .../atlassian/jira/8/8.5.3/Dockerfile | 0 .../atlassian/jira/8/8.5.3/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.3}/Makefile | 0 .../atlassian/jira/8/8.5.3/docker-compose.yml | 0 .../atlassian/jira/8/8.5.3/entrypoint.sh | 0 .../atlassian/jira/8/8.5.4/.env | 0 .../atlassian/jira/8/8.5.4/Dockerfile | 0 .../atlassian/jira/8/8.5.4/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.4}/Makefile | 0 .../atlassian/jira/8/8.5.4/docker-compose.yml | 0 .../atlassian/jira/8/8.5.4/entrypoint.sh | 0 .../atlassian/jira/8/8.5.5/.env | 0 .../atlassian/jira/8/8.5.5/Dockerfile | 0 .../atlassian/jira/8/8.5.5/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.5}/Makefile | 0 .../atlassian/jira/8/8.5.5/docker-compose.yml | 0 .../atlassian/jira/8/8.5.5/entrypoint.sh | 0 .../atlassian/jira/8/8.5.6/.env | 0 .../atlassian/jira/8/8.5.6/Dockerfile | 0 .../atlassian/jira/8/8.5.6/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.6}/Makefile | 0 .../atlassian/jira/8/8.5.6/docker-compose.yml | 0 .../atlassian/jira/8/8.5.6/entrypoint.sh | 0 .../atlassian/jira/8/8.5.7/.env | 0 .../atlassian/jira/8/8.5.7/Dockerfile | 0 .../atlassian/jira/8/8.5.7/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.7}/Makefile | 0 .../atlassian/jira/8/8.5.7/docker-compose.yml | 0 .../atlassian/jira/8/8.5.7/entrypoint.sh | 0 .../atlassian/jira/8/8.5.8/.env | 0 .../atlassian/jira/8/8.5.8/Dockerfile | 0 .../atlassian/jira/8/8.5.8/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.8}/Makefile | 0 .../atlassian/jira/8/8.5.8/docker-compose.yml | 0 .../atlassian/jira/8/8.5.8/entrypoint.sh | 0 .../atlassian/jira/8/8.5.9/.env | 0 .../atlassian/jira/8/8.5.9/Dockerfile | 0 .../atlassian/jira/8/8.5.9/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.5.9}/Makefile | 0 .../atlassian/jira/8/8.5.9/docker-compose.yml | 0 .../atlassian/jira/8/8.5.9/entrypoint.sh | 0 .../atlassian/jira/8/8.6.0/.env | 0 .../atlassian/jira/8/8.6.0/Dockerfile | 0 .../atlassian/jira/8/8.6.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.6.0}/Makefile | 0 .../atlassian/jira/8/8.6.0/docker-compose.yml | 0 .../atlassian/jira/8/8.6.0/entrypoint.sh | 0 .../atlassian/jira/8/8.6.1/.env | 0 .../atlassian/jira/8/8.6.1/Dockerfile | 0 .../atlassian/jira/8/8.6.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.6.1}/Makefile | 0 .../atlassian/jira/8/8.6.1/docker-compose.yml | 0 .../atlassian/jira/8/8.6.1/entrypoint.sh | 0 .../atlassian/jira/8/8.7.0/.env | 0 .../atlassian/jira/8/8.7.0/Dockerfile | 0 .../atlassian/jira/8/8.7.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.7.0}/Makefile | 0 .../atlassian/jira/8/8.7.0/docker-compose.yml | 0 .../atlassian/jira/8/8.7.0/entrypoint.sh | 0 .../atlassian/jira/8/8.7.1/.env | 0 .../atlassian/jira/8/8.7.1/Dockerfile | 0 .../atlassian/jira/8/8.7.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.7.1}/Makefile | 0 .../atlassian/jira/8/8.7.1/docker-compose.yml | 0 .../atlassian/jira/8/8.7.1/entrypoint.sh | 0 .../atlassian/jira/8/8.8.0/.env | 0 .../atlassian/jira/8/8.8.0/Dockerfile | 0 .../atlassian/jira/8/8.8.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.8.0}/Makefile | 0 .../atlassian/jira/8/8.8.0/docker-compose.yml | 0 .../atlassian/jira/8/8.8.0/entrypoint.sh | 0 .../atlassian/jira/8/8.8.1/.env | 0 .../atlassian/jira/8/8.8.1/Dockerfile | 0 .../atlassian/jira/8/8.8.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.8.1}/Makefile | 0 .../atlassian/jira/8/8.8.1/docker-compose.yml | 0 .../atlassian/jira/8/8.8.1/entrypoint.sh | 0 .../atlassian/jira/8/8.9.0/.env | 0 .../atlassian/jira/8/8.9.0/Dockerfile | 0 .../atlassian/jira/8/8.9.0/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.9.0}/Makefile | 0 .../atlassian/jira/8/8.9.0/docker-compose.yml | 0 .../atlassian/jira/8/8.9.0/entrypoint.sh | 0 .../atlassian/jira/8/8.9.1/.env | 0 .../atlassian/jira/8/8.9.1/Dockerfile | 0 .../atlassian/jira/8/8.9.1/Dockerfile.jdk11 | 0 .../atlassian/jira/8/8.9.1}/Makefile | 0 .../atlassian/jira/8/8.9.1/docker-compose.yml | 0 .../atlassian/jira/8/8.9.1/entrypoint.sh | 0 .../{ => ecosystem}/atlassian/jira/README.md | 0 .../atlassian/jira/latest/.env | 0 .../atlassian/jira/latest/Dockerfile | 0 .../atlassian/jira/latest/Dockerfile.jdk11 | 0 .../atlassian/jira/latest}/Makefile | 0 .../atlassian/jira/latest/docker-compose.yml | 0 .../atlassian/jira/latest/entrypoint.sh | 0 .../atlassian/jira/templates/5/Dockerfile | 0 .../atlassian/jira/templates/5}/Makefile | 0 .../jira/templates/5/docker-compose.yml | 0 .../atlassian/jira/templates/5/entrypoint.sh | 0 .../atlassian/jira/templates/6/Dockerfile | 0 .../atlassian/jira/templates/6}/Makefile | 0 .../jira/templates/6/docker-compose.yml | 0 .../atlassian/jira/templates/6/entrypoint.sh | 0 .../atlassian/jira/templates/7/Dockerfile | 0 .../atlassian/jira/templates/7}/Makefile | 0 .../jira/templates/7/docker-compose.yml | 0 .../atlassian/jira/templates/7/entrypoint.sh | 0 .../atlassian/jira/templates/8/Dockerfile | 0 .../jira/templates/8/Dockerfile.jdk11 | 0 .../atlassian/jira/templates/8}/Makefile | 0 .../jira/templates/8/docker-compose.yml | 0 .../atlassian/jira/templates/8/entrypoint.sh | 0 .../electron-release-server/Dockerfile | 0 .../electron-release-server}/Makefile | 0 .../docker-compose.yml | 0 .../docker-compose.yml.example | 0 linux/{ => ecosystem}/epicmorg/README.md | 0 .../epicmorg/devel/jdk11/Dockerfile | 0 .../epicmorg/devel/jdk11}/Makefile | 0 .../epicmorg/devel/jdk11/docker-compose.yml | 0 .../epicmorg/devel/jdk16/Dockerfile | 0 .../epicmorg/devel/jdk16}/Makefile | 0 .../epicmorg/devel/jdk16/docker-compose.yml | 0 .../epicmorg/devel/jdk6/Dockerfile | 0 .../epicmorg/devel/jdk6}/Makefile | 0 .../epicmorg/devel/jdk6/docker-compose.yml | 0 .../epicmorg/devel/jdk7/Dockerfile | 0 .../epicmorg/devel/jdk7}/Makefile | 0 .../epicmorg/devel/jdk7/docker-compose.yml | 0 .../epicmorg/devel/jdk8/Dockerfile | 0 .../epicmorg/devel/jdk8}/Makefile | 0 .../epicmorg/devel/jdk8/docker-compose.yml | 0 .../epicmorg/devel/main/Dockerfile | 0 .../epicmorg/devel/main}/Makefile | 0 .../epicmorg/devel/main/docker-compose.yml | 0 .../epicmorg/edge/jdk11/Dockerfile | 0 .../epicmorg/edge/jdk11}/Makefile | 0 .../epicmorg/edge/jdk11/docker-compose.yml | 0 .../epicmorg/edge/jdk16/Dockerfile | 0 .../epicmorg/edge/jdk16}/Makefile | 0 .../epicmorg/edge/jdk16/docker-compose.yml | 0 .../epicmorg/edge/jdk6/Dockerfile | 0 .../epicmorg/edge/jdk6}/Makefile | 0 .../epicmorg/edge/jdk6/docker-compose.yml | 0 .../epicmorg/edge/jdk7/Dockerfile | 0 .../epicmorg/edge/jdk7}/Makefile | 0 .../epicmorg/edge/jdk7/docker-compose.yml | 0 .../epicmorg/edge/jdk8/Dockerfile | 0 .../epicmorg/edge/jdk8}/Makefile | 0 .../epicmorg/edge/jdk8/docker-compose.yml | 0 .../epicmorg/edge/main/Dockerfile | 0 .../epicmorg/edge/main}/Makefile | 0 .../epicmorg/edge/main/docker-compose.yml | 0 .../ecosystem/epicmorg/edge/main/sources.list | 21 +++ .../epicmorg/prod/jdk11/Dockerfile | 0 .../epicmorg/prod/jdk11}/Makefile | 0 .../epicmorg/prod/jdk11/docker-compose.yml | 0 .../epicmorg/prod/jdk16/Dockerfile | 0 .../epicmorg/prod/jdk16}/Makefile | 0 .../epicmorg/prod/jdk16/docker-compose.yml | 0 .../epicmorg/prod/jdk6/Dockerfile | 0 .../epicmorg/prod/jdk6}/Makefile | 0 .../epicmorg/prod/jdk6/docker-compose.yml | 0 .../epicmorg/prod/jdk7/Dockerfile | 0 .../epicmorg/prod/jdk7}/Makefile | 0 .../epicmorg/prod/jdk7/docker-compose.yml | 0 .../epicmorg/prod/jdk8/Dockerfile | 0 .../epicmorg/prod/jdk8}/Makefile | 0 .../epicmorg/prod/jdk8/docker-compose.yml | 0 .../epicmorg/prod/main/Dockerfile | 0 .../epicmorg/prod/main}/Makefile | 0 .../prod/main/deb-multimedia-keyring.gpg | Bin .../epicmorg/prod/main/docker-compose.yml | 0 .../epicmorg/prod/main}/locale.gen | 0 .../epicmorg/prod/main}/locale.gen.full | 0 .../ecosystem/epicmorg/prod/main/sources.list | 19 +++ linux/{ => ecosystem}/nginx/1.14.2/main/.env | 0 .../nginx/1.14.2/main/Dockerfile | 0 .../nginx/1.14.2}/main/Makefile | 0 .../nginx/1.14.2/main/README.md | 0 .../nginx/1.14.2/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../1.14.2/main/pre/luajit2-description-pak | 0 .../1.14.2/main/pre/nginx-description-pak | 0 .../nginx/1.14.2/main/pre/ngninx.pre.tar.gz | Bin linux/{ => ecosystem}/nginx/1.14.2/php/.env | 0 .../nginx/1.14.2/php/Dockerfile | 0 .../nginx/1.14.2}/php/Makefile | 0 .../nginx/1.14.2/php/README.md | 0 .../nginx/1.14.2/php/docker-compose.yml | 0 .../nginx/1.14.2/rtmp-hls/.env | 0 .../nginx/1.14.2/rtmp-hls/Dockerfile | 0 .../nginx/1.14.2}/rtmp-hls/Makefile | 0 .../nginx/1.14.2/rtmp-hls/README.md | 0 .../nginx/1.14.2/rtmp-hls/conf/nginx.conf | 0 .../1.14.2/rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../nginx/1.14.2/rtmp-hls/docker-compose.yml | 0 .../nginx/1.14.2/rtmp-hls/players/dash.html | 0 .../nginx/1.14.2/rtmp-hls/players/hls.html | 0 .../1.14.2/rtmp-hls/players/hls_hlsjs.html | 0 .../nginx/1.14.2/rtmp-hls/players/rtmp.html | 0 .../1.14.2/rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/{ => ecosystem}/nginx/1.15.12/main/.env | 0 .../nginx/1.15.12/main/Dockerfile | 0 .../nginx/1.15.12}/main/Makefile | 0 .../nginx/1.15.12/main/README.md | 0 .../nginx/1.15.12/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../1.15.12/main/pre/luajit2-description-pak | 0 .../1.15.12/main/pre/nginx-description-pak | 0 .../nginx/1.15.12/main/pre/ngninx.pre.tar.gz | Bin linux/{ => ecosystem}/nginx/1.15.12/php/.env | 0 .../nginx/1.15.12/php/Dockerfile | 0 .../nginx/1.15.12}/php/Makefile | 0 .../nginx/1.15.12/php/README.md | 0 .../nginx/1.15.12/php/docker-compose.yml | 0 .../nginx/1.15.12/rtmp-hls/.env | 0 .../nginx/1.15.12/rtmp-hls/Dockerfile | 0 .../nginx/1.15.12}/rtmp-hls/Makefile | 0 .../nginx/1.15.12/rtmp-hls/README.md | 0 .../nginx/1.15.12/rtmp-hls/conf/nginx.conf | 0 .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../nginx/1.15.12/rtmp-hls/docker-compose.yml | 0 .../nginx/1.15.12/rtmp-hls/players/dash.html | 0 .../nginx/1.15.12/rtmp-hls/players/hls.html | 0 .../1.15.12/rtmp-hls/players/hls_hlsjs.html | 0 .../nginx/1.15.12/rtmp-hls/players/rtmp.html | 0 .../1.15.12/rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/{ => ecosystem}/nginx/1.16.1/main/.env | 0 .../nginx/1.16.1/main/Dockerfile | 0 .../nginx/1.16.1}/main/Makefile | 0 .../nginx/1.16.1/main/README.md | 0 .../nginx/1.16.1/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../1.16.1/main/pre/luajit2-description-pak | 0 .../1.16.1/main/pre/nginx-description-pak | 0 .../nginx/1.16.1/main/pre/ngninx.pre.tar.gz | Bin linux/{ => ecosystem}/nginx/1.16.1/php/.env | 0 .../nginx/1.16.1/php/Dockerfile | 0 .../nginx/1.16.1}/php/Makefile | 0 .../nginx/1.16.1/php/README.md | 0 .../nginx/1.16.1/php/docker-compose.yml | 0 .../nginx/1.16.1/rtmp-hls/.env | 0 .../nginx/1.16.1/rtmp-hls/Dockerfile | 0 .../nginx/1.16.1}/rtmp-hls/Makefile | 0 .../nginx/1.16.1/rtmp-hls/README.md | 0 .../nginx/1.16.1/rtmp-hls/conf/nginx.conf | 0 .../1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../nginx/1.16.1/rtmp-hls/docker-compose.yml | 0 .../nginx/1.16.1/rtmp-hls/players/dash.html | 0 .../nginx/1.16.1/rtmp-hls/players/hls.html | 0 .../1.16.1/rtmp-hls/players/hls_hlsjs.html | 0 .../nginx/1.16.1/rtmp-hls/players/rtmp.html | 0 .../1.16.1/rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/{ => ecosystem}/nginx/1.17.10/main/.env | 0 .../nginx/1.17.10/main/Dockerfile | 0 .../nginx/1.17.10}/main/Makefile | 0 .../nginx/1.17.10/main/README.md | 0 .../nginx/1.17.10/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../1.17.10/main/pre/luajit2-description-pak | 0 .../1.17.10/main/pre/nginx-description-pak | 0 .../nginx/1.17.10/main/pre/ngninx.pre.tar.gz | Bin linux/{ => ecosystem}/nginx/1.17.10/php/.env | 0 .../nginx/1.17.10/php/Dockerfile | 0 .../nginx/1.17.10}/php/Makefile | 0 .../nginx/1.17.10/php/README.md | 0 .../nginx/1.17.10/php/docker-compose.yml | 0 .../nginx/1.17.10/rtmp-hls/.env | 0 .../nginx/1.17.10/rtmp-hls/Dockerfile | 0 .../nginx/1.17.10}/rtmp-hls/Makefile | 0 .../nginx/1.17.10/rtmp-hls/README.md | 0 .../nginx/1.17.10/rtmp-hls/conf/nginx.conf | 0 .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../nginx/1.17.10/rtmp-hls/docker-compose.yml | 0 .../nginx/1.17.10/rtmp-hls/players/dash.html | 0 .../nginx/1.17.10/rtmp-hls/players/hls.html | 0 .../1.17.10/rtmp-hls/players/hls_hlsjs.html | 0 .../nginx/1.17.10/rtmp-hls/players/rtmp.html | 0 .../1.17.10/rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/{ => ecosystem}/nginx/1.18.0/main/.env | 0 .../nginx/1.18.0/main/Dockerfile | 0 .../nginx/1.18.0}/main/Makefile | 0 .../nginx/1.18.0/main/README.md | 0 .../nginx/1.18.0/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../1.18.0/main/pre/luajit2-description-pak | 0 .../1.18.0/main/pre/nginx-description-pak | 0 .../nginx/1.18.0/main/pre/ngninx.pre.tar.gz | Bin linux/{ => ecosystem}/nginx/1.18.0/php/.env | 0 .../nginx/1.18.0/php/Dockerfile | 0 .../nginx/1.18.0}/php/Makefile | 0 .../nginx/1.18.0/php/README.md | 0 .../nginx/1.18.0/php/docker-compose.yml | 0 .../nginx/1.18.0/rtmp-hls/.env | 0 .../nginx/1.18.0/rtmp-hls/Dockerfile | 0 .../nginx/1.18.0}/rtmp-hls/Makefile | 0 .../nginx/1.18.0/rtmp-hls/README.md | 0 .../nginx/1.18.0/rtmp-hls/conf/nginx.conf | 0 .../1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../nginx/1.18.0/rtmp-hls/docker-compose.yml | 0 .../nginx/1.18.0/rtmp-hls/players/dash.html | 0 .../nginx/1.18.0/rtmp-hls/players/hls.html | 0 .../1.18.0/rtmp-hls/players/hls_hlsjs.html | 0 .../nginx/1.18.0/rtmp-hls/players/rtmp.html | 0 .../1.18.0/rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/{ => ecosystem}/nginx/1.19.10/main/.env | 0 .../nginx/1.19.10/main/Dockerfile | 0 .../nginx/1.19.10}/main/Makefile | 0 .../nginx/1.19.10/main/README.md | 0 .../nginx/1.19.10/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../1.19.10/main/pre/luajit2-description-pak | 0 .../1.19.10/main/pre/nginx-description-pak | 0 .../nginx/1.19.10/main/pre/ngninx.pre.tar.gz | Bin linux/{ => ecosystem}/nginx/1.19.10/php/.env | 0 .../nginx/1.19.10/php/Dockerfile | 0 .../nginx/1.19.10}/php/Makefile | 0 .../nginx/1.19.10/php/README.md | 0 .../nginx/1.19.10/php/docker-compose.yml | 0 .../nginx/1.19.10/rtmp-hls/.env | 0 .../nginx/1.19.10/rtmp-hls/Dockerfile | 0 .../nginx/1.19.10}/rtmp-hls/Makefile | 0 .../nginx/1.19.10/rtmp-hls/README.md | 0 .../nginx/1.19.10/rtmp-hls/conf/nginx.conf | 0 .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../nginx/1.19.10/rtmp-hls/docker-compose.yml | 0 .../nginx/1.19.10/rtmp-hls/players/dash.html | 0 .../nginx/1.19.10/rtmp-hls/players/hls.html | 0 .../1.19.10/rtmp-hls/players/hls_hlsjs.html | 0 .../nginx/1.19.10/rtmp-hls/players/rtmp.html | 0 .../1.19.10/rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/{ => ecosystem}/nginx/1.20.1/main/.env | 0 .../nginx/1.20.1/main/Dockerfile | 0 .../nginx/1.20.1}/main/Makefile | 0 .../nginx/1.20.1/main/README.md | 0 .../nginx/1.20.1/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../1.20.1/main/pre/luajit2-description-pak | 0 .../1.20.1/main/pre/nginx-description-pak | 0 .../nginx/1.20.1/main/pre/ngninx.pre.tar.gz | Bin linux/{ => ecosystem}/nginx/1.20.1/php/.env | 0 .../nginx/1.20.1/php/Dockerfile | 0 .../nginx/1.20.1}/php/Makefile | 0 .../nginx/1.20.1/php/README.md | 0 .../nginx/1.20.1/php/docker-compose.yml | 0 .../nginx/1.20.1/rtmp-hls/.env | 0 .../nginx/1.20.1/rtmp-hls/Dockerfile | 0 .../nginx/1.20.1}/rtmp-hls/Makefile | 0 .../nginx/1.20.1/rtmp-hls/README.md | 0 .../nginx/1.20.1/rtmp-hls/conf/nginx.conf | 0 .../1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../nginx/1.20.1/rtmp-hls/docker-compose.yml | 0 .../nginx/1.20.1/rtmp-hls/players/dash.html | 0 .../nginx/1.20.1/rtmp-hls/players/hls.html | 0 .../1.20.1/rtmp-hls/players/hls_hlsjs.html | 0 .../nginx/1.20.1/rtmp-hls/players/rtmp.html | 0 .../1.20.1/rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/{ => ecosystem}/nginx/1.21.1/main/.env | 0 .../nginx/1.21.1/main/Dockerfile | 0 .../nginx/1.21.1/main}/Makefile | 0 .../nginx/1.21.1/main/README.md | 0 .../nginx/1.21.1/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../1.21.1/main/pre/luajit2-description-pak | 0 .../1.21.1/main/pre/nginx-description-pak | 0 .../nginx/1.21.1/main/pre/ngninx.pre.tar.gz | Bin linux/{ => ecosystem}/nginx/1.21.1/php/.env | 0 .../nginx/1.21.1/php/Dockerfile | 0 .../nginx/1.21.1/php}/Makefile | 0 .../nginx/1.21.1/php/README.md | 0 .../nginx/1.21.1/php/docker-compose.yml | 0 .../nginx/1.21.1/rtmp-hls/.env | 0 .../nginx/1.21.1/rtmp-hls/Dockerfile | 0 .../nginx/1.21.1/rtmp-hls}/Makefile | 0 .../nginx/1.21.1/rtmp-hls/README.md | 0 .../nginx/1.21.1/rtmp-hls/conf/nginx.conf | 0 .../1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../nginx/1.21.1/rtmp-hls/docker-compose.yml | 0 .../nginx/1.21.1/rtmp-hls/players/dash.html | 0 .../nginx/1.21.1/rtmp-hls/players/hls.html | 0 .../1.21.1/rtmp-hls/players/hls_hlsjs.html | 0 .../nginx/1.21.1/rtmp-hls/players/rtmp.html | 0 .../1.21.1/rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/{ => ecosystem}/nginx/latest/main/.env | 0 .../nginx/latest/main/Dockerfile | 0 .../nginx/latest/main}/Makefile | 0 .../nginx/latest/main/README.md | 0 .../nginx/latest/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../latest/main/pre/luajit2-description-pak | 0 .../latest/main/pre/nginx-description-pak | 0 .../nginx/latest/main/pre/ngninx.pre.tar.gz | Bin linux/{ => ecosystem}/nginx/latest/php/.env | 0 .../nginx/latest/php/Dockerfile | 0 .../nginx/latest/php}/Makefile | 0 .../nginx/latest/php/README.md | 0 .../nginx/latest/php/docker-compose.yml | 0 .../nginx/latest/rtmp-hls/.env | 0 .../nginx/latest/rtmp-hls/Dockerfile | 0 .../nginx/latest/rtmp-hls}/Makefile | 0 .../nginx/latest/rtmp-hls/README.md | 0 .../nginx/latest/rtmp-hls/conf/nginx.conf | 0 .../latest/rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../conf/nginx_rtmp_minimal_no-stats.conf | 0 .../nginx/latest/rtmp-hls/docker-compose.yml | 0 .../nginx/latest/rtmp-hls/players/dash.html | 0 .../nginx/latest/rtmp-hls/players/hls.html | 0 .../latest/rtmp-hls/players/hls_hlsjs.html | 0 .../nginx/latest/rtmp-hls/players/rtmp.html | 0 .../latest/rtmp-hls/players/rtmp_hls.html | 0 .../sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../sources.list.d/sources.stretch.list | 0 linux/{ => ecosystem}/nginx/links.txt | 0 linux/{ => ecosystem}/php/latest/Dockerfile | 0 .../12 => ecosystem/php/latest}/Makefile | 0 linux/{ => ecosystem}/php/latest/README.md | 0 .../php/latest/docker-compose.yml | 0 linux/{ => ecosystem}/php/php7.2/Dockerfile | 0 .../13 => ecosystem/php/php7.2}/Makefile | 0 linux/{ => ecosystem}/php/php7.2/README.md | 0 .../php/php7.2/docker-compose.yml | 0 linux/{ => ecosystem}/php/php7.3/Dockerfile | 0 .../14 => ecosystem/php/php7.3}/Makefile | 0 linux/{ => ecosystem}/php/php7.3/README.md | 0 .../php/php7.3/docker-compose.yml | 0 linux/{ => ecosystem}/php/php7.4/Dockerfile | 0 .../8.2 => ecosystem/php/php7.4}/Makefile | 0 linux/{ => ecosystem}/php/php7.4/README.md | 0 .../php/php7.4/docker-compose.yml | 0 linux/{ => ecosystem}/postgres/10/Dockerfile | 0 .../8.3 => ecosystem/postgres/10}/Makefile | 0 linux/{ => ecosystem}/postgres/10/README.md | 0 .../postgres/10/docker-compose.yml | 0 .../postgres/10/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/11/Dockerfile | 0 .../8.4 => ecosystem/postgres/11}/Makefile | 0 linux/{ => ecosystem}/postgres/11/README.md | 0 .../postgres/11/docker-compose.yml | 0 .../postgres/11/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/12/Dockerfile | 0 .../9.0 => ecosystem/postgres/12}/Makefile | 0 linux/{ => ecosystem}/postgres/12/README.md | 0 .../postgres/12/docker-compose.yml | 0 .../postgres/12/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/13/Dockerfile | 0 .../9.1 => ecosystem/postgres/13}/Makefile | 0 linux/{ => ecosystem}/postgres/13/README.md | 0 .../postgres/13/docker-compose.yml | 0 .../postgres/13/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/14/Dockerfile | 0 .../9.2 => ecosystem/postgres/14}/Makefile | 0 linux/{ => ecosystem}/postgres/14/README.md | 0 .../postgres/14/docker-compose.yml | 0 .../postgres/14/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/8.2/Dockerfile | 0 .../9.3 => ecosystem/postgres/8.2}/Makefile | 0 linux/{ => ecosystem}/postgres/8.2/README.md | 0 .../postgres/8.2/docker-compose.yml | 0 .../postgres/8.2/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/8.3/Dockerfile | 0 .../9.4 => ecosystem/postgres/8.3}/Makefile | 0 linux/{ => ecosystem}/postgres/8.3/README.md | 0 .../postgres/8.3/docker-compose.yml | 0 .../postgres/8.3/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/8.4/Dockerfile | 0 .../9.5 => ecosystem/postgres/8.4}/Makefile | 0 linux/{ => ecosystem}/postgres/8.4/README.md | 0 .../postgres/8.4/docker-compose.yml | 0 .../postgres/8.4/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/9.0/Dockerfile | 0 .../9.6 => ecosystem/postgres/9.0}/Makefile | 0 linux/{ => ecosystem}/postgres/9.0/README.md | 0 .../postgres/9.0/docker-compose.yml | 0 .../postgres/9.0/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/9.1/Dockerfile | 0 .../postgres/9.1}/Makefile | 0 linux/{ => ecosystem}/postgres/9.1/README.md | 0 .../postgres/9.1/docker-compose.yml | 0 .../postgres/9.1/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/9.2/Dockerfile | 0 .../postgres/9.2}/Makefile | 0 linux/{ => ecosystem}/postgres/9.2/README.md | 0 .../postgres/9.2/docker-compose.yml | 0 .../postgres/9.2/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/9.3/Dockerfile | 0 .../postgres/9.3}/Makefile | 0 linux/{ => ecosystem}/postgres/9.3/README.md | 0 .../postgres/9.3/docker-compose.yml | 0 .../postgres/9.3/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/9.4/Dockerfile | 0 .../postgres/9.4}/Makefile | 0 linux/{ => ecosystem}/postgres/9.4/README.md | 0 .../postgres/9.4/docker-compose.yml | 0 .../postgres/9.4/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/9.5/Dockerfile | 0 .../postgres/9.5}/Makefile | 0 linux/{ => ecosystem}/postgres/9.5/README.md | 0 .../postgres/9.5/docker-compose.yml | 0 .../postgres/9.5/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/9.6/Dockerfile | 0 .../postgres/9.6}/Makefile | 0 linux/{ => ecosystem}/postgres/9.6/README.md | 0 .../postgres/9.6/docker-compose.yml | 0 .../postgres/9.6/docker-entrypoint.sh | 0 linux/{ => ecosystem}/postgres/AUTHORS | 0 linux/{ => ecosystem}/postgres/LICENSE | 0 linux/{ => ecosystem}/postgres/README.md | 0 .../postgres/latest/Dockerfile | 0 .../postgres/latest}/Makefile | 0 .../{ => ecosystem}/postgres/latest/README.md | 0 .../postgres/latest/docker-compose.yml | 0 .../postgres/latest/docker-entrypoint.sh | 0 linux/{ => ecosystem}/qbittorrent/README.md | 0 .../qbittorrent/latest/Dockerfile | 0 .../qbittorrent}/latest/Makefile | 0 .../qbittorrent/latest/Makefile.unstable | 0 .../latest/docker-compose.example.yml | 0 .../qbittorrent/latest/docker-compose.yml | 0 .../qbittorrent/latest/entrypoint.sh | 0 .../latest/qbittorrent-unstable.list | 0 .../qbittorrent/qbittorrent-icon.png | Bin .../qbittorrent/stable/Dockerfile | 0 .../qbittorrent/stable}/Makefile | 0 .../qbittorrent/stable/docker-compose.yml | 0 .../qbittorrent/stable/entrypoint.sh | 0 .../stable/qbittorrent-stable.list | 0 linux/ecosystem/teamcity/README.md | 42 ++++++ .../teamcity/agent/amxx-sdk/Dockerfile | 0 .../teamcity/agent/amxx-sdk}/Makefile | 0 .../teamcity/agent/amxx-sdk/README.md | 0 .../agent/amxx-sdk/docker-compose.yml | 0 .../teamcity/agent/android-sdk/Dockerfile | 0 .../teamcity/agent/android-sdk}/Makefile | 0 .../teamcity/agent/android-sdk/README.md | 0 .../agent/android-sdk/docker-compose.yml | 0 .../teamcity/agent/atlassian-sdk/Dockerfile | 0 .../teamcity/agent/atlassian-sdk}/Makefile | 0 .../teamcity/agent/atlassian-sdk/README.md | 0 .../agent/atlassian-sdk/docker-compose.yml | 0 .../teamcity/agent/dotnet-sdk/Dockerfile | 0 .../teamcity/agent/dotnet-sdk}/Makefile | 0 .../teamcity/agent/dotnet-sdk/README.md | 0 .../agent/dotnet-sdk/docker-compose.yml | 0 .../teamcity/agent/latest/Dockerfile | 0 .../teamcity/agent/latest}/Makefile | 0 .../teamcity/agent/latest/README.md | 0 .../teamcity/agent/latest/docker-compose.yml | 0 .../teamcity/agent/latest/run-agent.sh | 0 .../teamcity/agent/latest/run-docker.sh | 0 .../teamcity/agent/latest/run-services.sh | 0 .../teamcity/agent/latest/sources.sid.list | 7 + .../teamcity/agent/node12/Dockerfile | 0 .../teamcity/agent/node12}/Makefile | 0 .../teamcity/agent/node12/README.md | 0 .../teamcity/agent/node12/docker-compose.yml | 0 .../teamcity/agent/node14/Dockerfile | 0 .../teamcity/agent/node14}/Makefile | 0 .../teamcity/agent/node14/README.md | 0 .../teamcity/agent/node14/docker-compose.yml | 0 .../teamcity/agent/node15/Dockerfile | 0 .../teamcity/agent/node15}/Makefile | 0 .../teamcity/agent/node15/README.md | 0 .../teamcity/agent/node15/docker-compose.yml | 0 .../teamcity/agent/node16/Dockerfile | 0 .../teamcity/agent/node16}/Makefile | 0 .../teamcity/agent/node16/README.md | 0 .../teamcity/agent/node16/docker-compose.yml | 0 .../teamcity/agent/php7.2/Dockerfile | 0 .../teamcity/agent/php7.2}/Makefile | 0 .../teamcity/agent/php7.2/README.md | 0 .../teamcity/agent/php7.2/docker-compose.yml | 0 .../teamcity/agent/php7.2/run-agent.sh | 0 .../teamcity/agent/php7.2/run-services.sh | 0 .../teamcity/agent/php7.2}/sources.sid.list | 0 .../teamcity/agent/php7.3/Dockerfile | 0 .../teamcity/agent/php7.3}/Makefile | 0 .../teamcity/agent/php7.3/README.md | 0 .../teamcity/agent/php7.3/docker-compose.yml | 0 .../teamcity/agent/php7.3/run-agent.sh | 0 .../teamcity/agent/php7.3/run-services.sh | 0 .../teamcity/agent/php7.3}/sources.sid.list | 0 .../teamcity/agent/php7.4/Dockerfile | 0 .../teamcity/agent/php7.4}/Makefile | 0 .../teamcity/agent/php7.4/README.md | 0 .../teamcity/agent/php7.4/docker-compose.yml | 0 .../teamcity/agent/php7.4/run-agent.sh | 0 .../teamcity/agent/php7.4/run-services.sh | 0 .../teamcity/agent/php7.4}/sources.sid.list | 0 .../teamcity/agent/steam-sdk/Dockerfile | 0 .../teamcity/agent/steam-sdk}/Makefile | 0 .../teamcity/agent/steam-sdk/README.md | 0 .../agent/steam-sdk/docker-compose.yml | 0 .../testrail/latest/Dockerfile | 0 .../testrail/latest}/Makefile | 0 .../{ => ecosystem}/testrail/latest/README.md | 0 .../testrail/latest/apache_testrail.conf | 0 .../testrail/latest/docker-compose.yml | 0 linux/{ => ecosystem}/testrail/latest/run.sh | 0 .../vk2discord/latest/Dockerfile | 0 .../vk2discord/latest}/Makefile | 0 .../vk2discord/latest/README.md | 0 .../vk2discord/latest/docker-compose.yml | 0 linux/epicmorg/edge/main/sources.list | 21 --- linux/epicmorg/prod/main/sources.list | 19 --- linux/nextcloud/14/sources.list | 19 --- linux/nextcloud/15/sources.list | 19 --- linux/nextcloud/16/sources.list | 19 --- linux/nextcloud/17/sources.list | 19 --- linux/nextcloud/18/sources.list | 19 --- linux/nextcloud/19/sources.list | 19 --- linux/nextcloud/20/sources.list | 19 --- linux/nextcloud/21/sources.list | 19 --- linux/nextcloud/22/sources.list | 19 --- linux/nextcloud/latest/sources.list | 19 --- linux/teamcity/agent/php7.4/sources.sid.list | 7 - 4324 files changed, 369 insertions(+), 309 deletions(-) rename linux/{ => advanced}/mattermost/latest/Dockerfile (100%) rename linux/{apache2 => advanced/mattermost}/latest/Makefile (100%) rename linux/{ => advanced}/mattermost/latest/docker-compose.yml (100%) rename linux/{ => advanced}/mattermost/latest/edit.py (100%) rename linux/{ => advanced}/nextcloud/14/Dockerfile (100%) rename linux/{apache2/php7.2 => advanced/nextcloud/14}/Makefile (100%) rename linux/{ => advanced}/nextcloud/14/README.md (100%) rename linux/{ => advanced}/nextcloud/14/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/14/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/14/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/14/sources.list rename linux/{ => advanced}/nextcloud/15/Dockerfile (100%) rename linux/{apache2/php7.3 => advanced/nextcloud/15}/Makefile (100%) rename linux/{ => advanced}/nextcloud/15/README.md (100%) rename linux/{ => advanced}/nextcloud/15/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/15/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/15/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/15/sources.list rename linux/{ => advanced}/nextcloud/16/Dockerfile (100%) rename linux/{apache2/php7.4 => advanced/nextcloud/16}/Makefile (100%) rename linux/{ => advanced}/nextcloud/16/README.md (100%) rename linux/{ => advanced}/nextcloud/16/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/16/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/16/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/16/sources.list rename linux/{ => advanced}/nextcloud/17/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.0.1 => advanced/nextcloud/17}/Makefile (100%) rename linux/{ => advanced}/nextcloud/17/README.md (100%) rename linux/{ => advanced}/nextcloud/17/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/17/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/17/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/17/sources.list rename linux/{ => advanced}/nextcloud/18/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.0.2 => advanced/nextcloud/18}/Makefile (100%) rename linux/{ => advanced}/nextcloud/18/README.md (100%) rename linux/{ => advanced}/nextcloud/18/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/18/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/18/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/18/sources.list rename linux/{ => advanced}/nextcloud/19/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.0.3 => advanced/nextcloud/19}/Makefile (100%) rename linux/{ => advanced}/nextcloud/19/README.md (100%) rename linux/{ => advanced}/nextcloud/19/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/19/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/19/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/19/sources.list rename linux/{ => advanced}/nextcloud/20/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.0.4 => advanced/nextcloud/20}/Makefile (100%) rename linux/{ => advanced}/nextcloud/20/README.md (100%) rename linux/{ => advanced}/nextcloud/20/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/20/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/20/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/20/sources.list rename linux/{ => advanced}/nextcloud/21/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.0.5 => advanced/nextcloud/21}/Makefile (100%) rename linux/{ => advanced}/nextcloud/21/README.md (100%) rename linux/{ => advanced}/nextcloud/21/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/21/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/21/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/21/sources.list rename linux/{ => advanced}/nextcloud/22/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.0.6 => advanced/nextcloud/22}/Makefile (100%) rename linux/{ => advanced}/nextcloud/22/README.md (100%) rename linux/{ => advanced}/nextcloud/22/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/22/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/22/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/22/sources.list rename linux/{ => advanced}/nextcloud/README.md (100%) rename linux/{ => advanced}/nextcloud/latest/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.0.7 => advanced/nextcloud/latest}/Makefile (100%) rename linux/{ => advanced}/nextcloud/latest/README.md (100%) rename linux/{ => advanced}/nextcloud/latest/Streamer.php (100%) rename linux/{ => advanced}/nextcloud/latest/docker-compose.yml (100%) rename linux/{ => advanced}/nextcloud/latest/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/latest/sources.list rename linux/{ => advanced}/teamcity/README.md (100%) rename linux/{ => advanced}/teamcity/server/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.1.0 => advanced/teamcity/server}/Makefile (100%) rename linux/{ => advanced}/teamcity/server/README.md (100%) rename linux/{ => advanced}/teamcity/server/docker-compose.yml (100%) rename linux/{epicmorg/prod/main => advanced/teamcity/server}/locale.gen (100%) rename linux/{epicmorg/prod/main => advanced/teamcity/server}/locale.gen.full (100%) rename linux/{ => advanced}/teamcity/server/sources.list (100%) rename linux/{ => advanced}/zabbix/agent/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.1.1 => advanced/zabbix/agent}/Makefile (100%) rename linux/{ => advanced}/zabbix/agent/README.md (100%) rename linux/{ => advanced}/zabbix/agent/docker-compose.yml (100%) rename linux/{teamcity/server => advanced/zabbix/agent}/locale.gen (100%) rename linux/{teamcity/server => advanced/zabbix/agent}/locale.gen.full (100%) rename linux/{ => advanced}/zabbix/agent/sources.list (100%) rename linux/{ => advanced}/zabbix/java-gateway/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.1.2 => advanced/zabbix/java-gateway}/Makefile (100%) rename linux/{ => advanced}/zabbix/java-gateway/README.md (100%) rename linux/{ => advanced}/zabbix/java-gateway/docker-compose.yml (100%) rename linux/{zabbix/agent => advanced/zabbix/java-gateway}/locale.gen (100%) rename linux/{zabbix/agent => advanced/zabbix/java-gateway}/locale.gen.full (100%) rename linux/{ => advanced}/zabbix/java-gateway/sources.list (100%) rename linux/{ => advanced}/zabbix/proxy/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.1.3 => advanced/zabbix/proxy}/Makefile (100%) rename linux/{ => advanced}/zabbix/proxy/README.md (100%) rename linux/{ => advanced}/zabbix/proxy/docker-compose.yml (100%) rename linux/{zabbix/java-gateway => advanced/zabbix/proxy}/locale.gen (100%) rename linux/{zabbix/java-gateway => advanced/zabbix/proxy}/locale.gen.full (100%) rename linux/{ => advanced}/zabbix/proxy/sources.list (100%) rename linux/{ => advanced}/zabbix/server/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.1.4 => advanced/zabbix/server}/Makefile (100%) rename linux/{ => advanced}/zabbix/server/README.md (100%) rename linux/{ => advanced}/zabbix/server/docker-compose.yml (100%) rename linux/{zabbix/proxy => advanced/zabbix/server}/locale.gen (100%) rename linux/{zabbix/proxy => advanced/zabbix/server}/locale.gen.full (100%) rename linux/{ => advanced}/zabbix/server/sources.list (100%) rename linux/{ => advanced}/zabbix/web/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.10.0 => advanced/zabbix/web}/Makefile (100%) rename linux/{ => advanced}/zabbix/web/README.md (100%) rename linux/{ => advanced}/zabbix/web/docker-compose.yml (100%) rename linux/{zabbix/server => advanced/zabbix/web}/locale.gen (100%) rename linux/{zabbix/server => advanced/zabbix/web}/locale.gen.full (100%) rename linux/{ => advanced}/zabbix/web/sources.list (100%) rename linux/{ => ecosystem}/apache2/latest/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.10.1 => ecosystem/apache2/latest}/Makefile (100%) rename linux/{ => ecosystem}/apache2/latest/README.md (100%) rename linux/{ => ecosystem}/apache2/latest/docker-compose.yml (100%) rename linux/{ => ecosystem}/apache2/latest/run.sh (100%) rename linux/{ => ecosystem}/apache2/php7.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.10.2 => ecosystem/apache2/php7.2}/Makefile (100%) rename linux/{ => ecosystem}/apache2/php7.2/README.md (100%) rename linux/{ => ecosystem}/apache2/php7.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/apache2/php7.2/run.sh (100%) rename linux/{ => ecosystem}/apache2/php7.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.10.3 => ecosystem/apache2/php7.3}/Makefile (100%) rename linux/{ => ecosystem}/apache2/php7.3/README.md (100%) rename linux/{ => ecosystem}/apache2/php7.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/apache2/php7.3/run.sh (100%) rename linux/{ => ecosystem}/apache2/php7.4/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.11.0 => ecosystem/apache2/php7.4}/Makefile (100%) rename linux/{ => ecosystem}/apache2/php7.4/README.md (100%) rename linux/{ => ecosystem}/apache2/php7.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/apache2/php7.4/run.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.10/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.10/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.10/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.10/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.11/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.11/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.11/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.11/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.4/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.4/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.4/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.5/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.5/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.5/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.6/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.6/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.6/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.6/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.7/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.7/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.7/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.7/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.9/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.9/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.9/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.9/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.0.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.4/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.4/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.4/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.5/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.5/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.5/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.6/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.6/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.6/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.6/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.7/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.7/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.7/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.7/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.8/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.8/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.8/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.8/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.9/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.9/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.9/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.9/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.1.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.10.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.4/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.4/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.4/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.5/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.5/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.5/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.6/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.6/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.6/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.6/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.7/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.7/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.7/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.7/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.2.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.4/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.4/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.4/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.5/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.5/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.5/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.6/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.6/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.6/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.6/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.3.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.4/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.4/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.4/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.4.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.5.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.4/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.4/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.4/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.6.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.4/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.4/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.4/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.7.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.8.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/6.9.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/6/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.0/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.1/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.2/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.3/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/7.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/7/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/latest/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/latest/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/latest/Makefile (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/latest/README.md (100%) rename linux/{ => ecosystem}/atlassian/bitbucket/latest/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/5/5.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/5/5.5/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/5/5.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/5/5.9.14/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/5/5.9.14/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/5/5.9.14/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.11.1 => ecosystem/atlassian/confluence/6/6.0.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.11.2 => ecosystem/atlassian/confluence/6/6.0.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.12.0 => ecosystem/atlassian/confluence/6/6.0.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.4/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.4/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.12.1 => ecosystem/atlassian/confluence/6/6.0.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.5/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.5/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.12.2 => ecosystem/atlassian/confluence/6/6.0.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.6/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.6/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.12.3 => ecosystem/atlassian/confluence/6/6.0.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.7/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.7/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.12.4 => ecosystem/atlassian/confluence/6/6.0.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.0.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.0 => ecosystem/atlassian/confluence/6/6.1.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.1 => ecosystem/atlassian/confluence/6/6.1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.10 => ecosystem/atlassian/confluence/6/6.1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.11 => ecosystem/atlassian/confluence/6/6.1.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.4/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.4/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.12 => ecosystem/atlassian/confluence/6/6.1.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.1.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.13 => ecosystem/atlassian/confluence/6/6.10.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.15 => ecosystem/atlassian/confluence/6/6.10.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.17 => ecosystem/atlassian/confluence/6/6.10.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.18 => ecosystem/atlassian/confluence/6/6.10.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.10.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.19 => ecosystem/atlassian/confluence/6/6.11.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.2 => ecosystem/atlassian/confluence/6/6.11.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.20 => ecosystem/atlassian/confluence/6/6.11.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.11.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.21 => ecosystem/atlassian/confluence/6/6.12.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.3 => ecosystem/atlassian/confluence/6/6.12.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.4 => ecosystem/atlassian/confluence/6/6.12.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.5 => ecosystem/atlassian/confluence/6/6.12.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.4/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.4/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.6 => ecosystem/atlassian/confluence/6/6.12.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.12.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.7 => ecosystem/atlassian/confluence/6/6.13.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.8 => ecosystem/atlassian/confluence/6/6.13.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.10/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.10/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.13.9 => ecosystem/atlassian/confluence/6/6.13.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.11/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.11/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.14.0 => ecosystem/atlassian/confluence/6/6.13.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.12/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.12/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.14.1 => ecosystem/atlassian/confluence/6/6.13.12}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.12/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.12/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.13/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.13/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.14.2 => ecosystem/atlassian/confluence/6/6.13.13}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.13/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.13/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.15/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.15/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.14.3 => ecosystem/atlassian/confluence/6/6.13.15}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.15/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.15/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.17/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.17/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.15.1 => ecosystem/atlassian/confluence/6/6.13.17}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.17/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.17/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.18/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.18/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.15.10 => ecosystem/atlassian/confluence/6/6.13.18}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.18/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.18/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.19/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.19/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.15.2 => ecosystem/atlassian/confluence/6/6.13.19}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.19/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.19/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.15.4 => ecosystem/atlassian/confluence/6/6.13.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.20/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.20/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.15.6 => ecosystem/atlassian/confluence/6/6.13.20}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.20/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.20/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.21/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.21/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.15.7 => ecosystem/atlassian/confluence/6/6.13.21}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.21/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.21/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.15.8 => ecosystem/atlassian/confluence/6/6.13.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.4/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.4/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.15.9 => ecosystem/atlassian/confluence/6/6.13.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.5/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.5/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.2.0 => ecosystem/atlassian/confluence/6/6.13.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.6/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.6/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.2.1 => ecosystem/atlassian/confluence/6/6.13.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.7/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.7/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.2.2 => ecosystem/atlassian/confluence/6/6.13.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.8/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.8/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.2.3 => ecosystem/atlassian/confluence/6/6.13.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.9/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.9/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.2.4 => ecosystem/atlassian/confluence/6/6.13.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.13.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.3.1 => ecosystem/atlassian/confluence/6/6.14.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.3.2 => ecosystem/atlassian/confluence/6/6.14.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.3.3 => ecosystem/atlassian/confluence/6/6.14.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.3.4 => ecosystem/atlassian/confluence/6/6.14.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.14.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.4.0 => ecosystem/atlassian/confluence/6/6.15.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.10/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.10/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.4.1 => ecosystem/atlassian/confluence/6/6.15.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.4.2 => ecosystem/atlassian/confluence/6/6.15.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.4/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.4/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.4.3 => ecosystem/atlassian/confluence/6/6.15.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.6/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.6/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.5.0 => ecosystem/atlassian/confluence/6/6.15.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.7/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.7/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.5.1 => ecosystem/atlassian/confluence/6/6.15.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.8/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.8/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.5.2 => ecosystem/atlassian/confluence/6/6.15.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.9/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.9/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.5.3 => ecosystem/atlassian/confluence/6/6.15.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.15.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.0 => ecosystem/atlassian/confluence/6/6.2.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.1 => ecosystem/atlassian/confluence/6/6.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.10 => ecosystem/atlassian/confluence/6/6.2.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.11 => ecosystem/atlassian/confluence/6/6.2.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.4/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.4/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.12 => ecosystem/atlassian/confluence/6/6.2.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.2.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.13 => ecosystem/atlassian/confluence/6/6.3.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.14 => ecosystem/atlassian/confluence/6/6.3.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.15 => ecosystem/atlassian/confluence/6/6.3.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.4/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.4/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.16 => ecosystem/atlassian/confluence/6/6.3.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.3.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.17 => ecosystem/atlassian/confluence/6/6.4.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.2 => ecosystem/atlassian/confluence/6/6.4.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.3 => ecosystem/atlassian/confluence/6/6.4.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.4 => ecosystem/atlassian/confluence/6/6.4.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.4.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.5 => ecosystem/atlassian/confluence/6/6.5.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.6 => ecosystem/atlassian/confluence/6/6.5.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.7 => ecosystem/atlassian/confluence/6/6.5.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.8 => ecosystem/atlassian/confluence/6/6.5.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.5.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.0/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.6.9 => ecosystem/atlassian/confluence/6/6.6.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.1/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.7.0 => ecosystem/atlassian/confluence/6/6.6.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.10/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.10/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.7.1 => ecosystem/atlassian/confluence/6/6.6.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.11/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.11/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.7.2 => ecosystem/atlassian/confluence/6/6.6.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.12/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.12/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.7.3 => ecosystem/atlassian/confluence/6/6.6.12}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.12/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.12/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.13/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.13/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.8.0 => ecosystem/atlassian/confluence/6/6.6.13}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.13/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.13/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.14/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.14/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.8.1 => ecosystem/atlassian/confluence/6/6.6.14}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.14/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.14/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.15/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.15/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.8.2 => ecosystem/atlassian/confluence/6/6.6.15}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.15/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.15/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.16/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.16/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.8.3 => ecosystem/atlassian/confluence/6/6.6.16}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.16/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.16/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.17/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.17/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.8.5 => ecosystem/atlassian/confluence/6/6.6.17}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.17/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.17/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.2/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.9.0 => ecosystem/atlassian/confluence/6/6.6.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.3/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.9.1 => ecosystem/atlassian/confluence/6/6.6.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.4/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.4/Dockerfile (100%) rename linux/{atlassian/confluence/6/6.9.3 => ecosystem/atlassian/confluence/6/6.6.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.5/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.5/Dockerfile (100%) rename linux/{atlassian/confluence/templates/5 => ecosystem/atlassian/confluence/6/6.6.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.6/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.6/Dockerfile (100%) rename linux/{atlassian/confluence/templates/6 => ecosystem/atlassian/confluence/6/6.6.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.7/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.7/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.0.3 => ecosystem/atlassian/confluence/6/6.6.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.8/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.8/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.0.4 => ecosystem/atlassian/confluence/6/6.6.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.9/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.9/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.0 => ecosystem/atlassian/confluence/6/6.6.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.6.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.0/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.1.1 => ecosystem/atlassian/confluence/6/6.7.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.1/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.1.2 => ecosystem/atlassian/confluence/6/6.7.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.2/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.1.3 => ecosystem/atlassian/confluence/6/6.7.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.3/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.1.4 => ecosystem/atlassian/confluence/6/6.7.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.7.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.0/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.1 => ecosystem/atlassian/confluence/6/6.8.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.1/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.2.1 => ecosystem/atlassian/confluence/6/6.8.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.2/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.2/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.2.2 => ecosystem/atlassian/confluence/6/6.8.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.3/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.2.3 => ecosystem/atlassian/confluence/6/6.8.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.5/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.5/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.2 => ecosystem/atlassian/confluence/6/6.8.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.8.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.0/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.0/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.5.1 => ecosystem/atlassian/confluence/6/6.9.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.1/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.1/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.5.2 => ecosystem/atlassian/confluence/6/6.9.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.3/.env (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.3/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.5.3 => ecosystem/atlassian/confluence/6/6.9.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/6/6.9.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.4/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.5/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.0.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.1/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.1/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.2/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.2/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.3/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.3/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.4/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.4/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.5/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.5/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.3.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.4.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.4.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.4.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.4.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.5.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.5.0/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.5.0/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/7/7.5.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/README.md (100%) rename linux/{ => ecosystem}/atlassian/confluence/latest/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/confluence/latest/Dockerfile.jdk11 (100%) rename linux/{ => ecosystem}/atlassian/confluence/latest/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/latest/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/templates/5/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.5.4 => ecosystem/atlassian/confluence/templates/5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/templates/5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/templates/5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/confluence/templates/6/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.5 => ecosystem/atlassian/confluence/templates/6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/confluence/templates/6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/confluence/templates/6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0.3/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0.3/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.0 => ecosystem/atlassian/crucible/1/1.0.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0.4/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0.4/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.0Beta1 => ecosystem/atlassian/crucible/1/1.0.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.0Beta2 => ecosystem/atlassian/crucible/1/1.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.1/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.1 => ecosystem/atlassian/crucible/1/1.1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.2/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.2.1 => ecosystem/atlassian/crucible/1/1.1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.3/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.3/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.2 => ecosystem/atlassian/crucible/1/1.1.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.4/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.4/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.3 => ecosystem/atlassian/crucible/1/1.1.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.4 => ecosystem/atlassian/crucible/1/1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.1/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.5.a => ecosystem/atlassian/crucible/1/1.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.2/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.2/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.5 => ecosystem/atlassian/crucible/1/1.2.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.3/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.3/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.5a => ecosystem/atlassian/crucible/1/1.2.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2/Dockerfile (100%) rename linux/{atlassian/crucible/1/1.6.6 => ecosystem/atlassian/crucible/1/1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.1/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.1/Dockerfile (100%) rename linux/{atlassian/crucible/templates/1 => ecosystem/atlassian/crucible/1/1.5.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.2/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.0.B3 => ecosystem/atlassian/crucible/1/1.5.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.3/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.0.RC1 => ecosystem/atlassian/crucible/1/1.5.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.4/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.0.RC2 => ecosystem/atlassian/crucible/1/1.5.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.0.RC3 => ecosystem/atlassian/crucible/1/1.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.0 => ecosystem/atlassian/crucible/1/1.6.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0Beta1/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0Beta1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.1 => ecosystem/atlassian/crucible/1/1.6.0Beta1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0Beta2/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0Beta2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.2 => ecosystem/atlassian/crucible/1/1.6.0Beta2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.1/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.3 => ecosystem/atlassian/crucible/1/1.6.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.2.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.4 => ecosystem/atlassian/crucible/1/1.6.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.2/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.5 => ecosystem/atlassian/crucible/1/1.6.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.3/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.0.6 => ecosystem/atlassian/crucible/1/1.6.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.4/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.1.0.M2cc => ecosystem/atlassian/crucible/1/1.6.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5.a/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5.a/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.1.0.RC1 => ecosystem/atlassian/crucible/1/1.6.5.a}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5.a/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5.a/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.1.0 => ecosystem/atlassian/crucible/1/1.6.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5a/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5a/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.1.1 => ecosystem/atlassian/crucible/1/1.6.5a}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5a/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.5a/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.6/.env (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.1.2 => ecosystem/atlassian/crucible/1/1.6.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/1/1.6.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/crucible/templates/1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.1.3 => ecosystem/atlassian/crucible/templates/1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/crucible/templates/1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/crucible/templates/1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.B3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.1.4 => ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.B3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.10.0 => ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.10.1 => ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.10.2 => ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.10.3 => ecosystem/atlassian/fisheye-crucible/2/2.0.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.10.4 => ecosystem/atlassian/fisheye-crucible/2/2.0.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.10.5 => ecosystem/atlassian/fisheye-crucible/2/2.0.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.10.6 => ecosystem/atlassian/fisheye-crucible/2/2.0.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.10.7 => ecosystem/atlassian/fisheye-crucible/2/2.0.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.10.8 => ecosystem/atlassian/fisheye-crucible/2/2.0.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.2.0 => ecosystem/atlassian/fisheye-crucible/2/2.0.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.2.1 => ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0.M2cc/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0.RC1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.2.3 => ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0.RC1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.3.0 => ecosystem/atlassian/fisheye-crucible/2/2.1.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.3.1 => ecosystem/atlassian/fisheye-crucible/2/2.1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.3.2 => ecosystem/atlassian/fisheye-crucible/2/2.1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.3.3 => ecosystem/atlassian/fisheye-crucible/2/2.1.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.3.4 => ecosystem/atlassian/fisheye-crucible/2/2.1.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.3.5 => ecosystem/atlassian/fisheye-crucible/2/2.10.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.3.6 => ecosystem/atlassian/fisheye-crucible/2/2.10.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.3.7 => ecosystem/atlassian/fisheye-crucible/2/2.10.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.3.8 => ecosystem/atlassian/fisheye-crucible/2/2.10.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.4.0 => ecosystem/atlassian/fisheye-crucible/2/2.10.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.4.1 => ecosystem/atlassian/fisheye-crucible/2/2.10.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.4.2 => ecosystem/atlassian/fisheye-crucible/2/2.10.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.7/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.7/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.4.3 => ecosystem/atlassian/fisheye-crucible/2/2.10.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.8/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.8/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.4.4 => ecosystem/atlassian/fisheye-crucible/2/2.10.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.4.5 => ecosystem/atlassian/fisheye-crucible/2/2.2.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.4.6 => ecosystem/atlassian/fisheye-crucible/2/2.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.0 => ecosystem/atlassian/fisheye-crucible/2/2.2.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.1 => ecosystem/atlassian/fisheye-crucible/2/2.3.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.2 => ecosystem/atlassian/fisheye-crucible/2/2.3.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.3 => ecosystem/atlassian/fisheye-crucible/2/2.3.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.4 => ecosystem/atlassian/fisheye-crucible/2/2.3.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.5 => ecosystem/atlassian/fisheye-crucible/2/2.3.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.6 => ecosystem/atlassian/fisheye-crucible/2/2.3.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.7 => ecosystem/atlassian/fisheye-crucible/2/2.3.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.7/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.7/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.8 => ecosystem/atlassian/fisheye-crucible/2/2.3.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.8/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.8/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.5.9 => ecosystem/atlassian/fisheye-crucible/2/2.3.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.0 => ecosystem/atlassian/fisheye-crucible/2/2.4.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.1 => ecosystem/atlassian/fisheye-crucible/2/2.4.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.2 => ecosystem/atlassian/fisheye-crucible/2/2.4.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.3 => ecosystem/atlassian/fisheye-crucible/2/2.4.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.4 => ecosystem/atlassian/fisheye-crucible/2/2.4.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.5 => ecosystem/atlassian/fisheye-crucible/2/2.4.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.6 => ecosystem/atlassian/fisheye-crucible/2/2.4.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.7 => ecosystem/atlassian/fisheye-crucible/2/2.5.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.8 => ecosystem/atlassian/fisheye-crucible/2/2.5.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.6.9 => ecosystem/atlassian/fisheye-crucible/2/2.5.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.0-EAP-1 => ecosystem/atlassian/fisheye-crucible/2/2.5.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.0-EAP-2 => ecosystem/atlassian/fisheye-crucible/2/2.5.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.0 => ecosystem/atlassian/fisheye-crucible/2/2.5.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.1 => ecosystem/atlassian/fisheye-crucible/2/2.5.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.7/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.7/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.10 => ecosystem/atlassian/fisheye-crucible/2/2.5.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.8/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.8/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.11 => ecosystem/atlassian/fisheye-crucible/2/2.5.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.9/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.9/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.12 => ecosystem/atlassian/fisheye-crucible/2/2.5.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.13 => ecosystem/atlassian/fisheye-crucible/2/2.6.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.14 => ecosystem/atlassian/fisheye-crucible/2/2.6.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.15 => ecosystem/atlassian/fisheye-crucible/2/2.6.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.2 => ecosystem/atlassian/fisheye-crucible/2/2.6.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.3 => ecosystem/atlassian/fisheye-crucible/2/2.6.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.4 => ecosystem/atlassian/fisheye-crucible/2/2.6.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.5 => ecosystem/atlassian/fisheye-crucible/2/2.6.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.7/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.7/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.6 => ecosystem/atlassian/fisheye-crucible/2/2.6.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.8/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.8/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.7 => ecosystem/atlassian/fisheye-crucible/2/2.6.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.9/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.9/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.8 => ecosystem/atlassian/fisheye-crucible/2/2.6.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.7.9 => ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0-EAP-1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.8.0-m1 => ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0-EAP-2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.8.0 => ecosystem/atlassian/fisheye-crucible/2/2.7.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.8.1 => ecosystem/atlassian/fisheye-crucible/2/2.7.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.10/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.10/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.8.2 => ecosystem/atlassian/fisheye-crucible/2/2.7.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.11/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.11/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.9.0 => ecosystem/atlassian/fisheye-crucible/2/2.7.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.12/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.12/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.9.1 => ecosystem/atlassian/fisheye-crucible/2/2.7.12}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.13/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.13/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/2/2.9.2 => ecosystem/atlassian/fisheye-crucible/2/2.7.13}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.14/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.14/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.0.0 => ecosystem/atlassian/fisheye-crucible/2/2.7.14}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.15/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.15/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.0.1 => ecosystem/atlassian/fisheye-crucible/2/2.7.15}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.0.2 => ecosystem/atlassian/fisheye-crucible/2/2.7.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.0.3 => ecosystem/atlassian/fisheye-crucible/2/2.7.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.0.4 => ecosystem/atlassian/fisheye-crucible/2/2.7.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.1.0 => ecosystem/atlassian/fisheye-crucible/2/2.7.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.1.1 => ecosystem/atlassian/fisheye-crucible/2/2.7.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.7/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.7/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.1.2 => ecosystem/atlassian/fisheye-crucible/2/2.7.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.8/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.8/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.1.3 => ecosystem/atlassian/fisheye-crucible/2/2.7.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.9/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.9/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.1.4 => ecosystem/atlassian/fisheye-crucible/2/2.7.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.0-m1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.1.5 => ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.0-m1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.1.6 => ecosystem/atlassian/fisheye-crucible/2/2.8.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.1.7 => ecosystem/atlassian/fisheye-crucible/2/2.8.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.10.1 => ecosystem/atlassian/fisheye-crucible/2/2.8.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.10.2 => ecosystem/atlassian/fisheye-crucible/2/2.9.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.10.3 => ecosystem/atlassian/fisheye-crucible/2/2.9.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.10.4 => ecosystem/atlassian/fisheye-crucible/2/2.9.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.2.0 => ecosystem/atlassian/fisheye-crucible/3/3.0.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.2.1 => ecosystem/atlassian/fisheye-crucible/3/3.0.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.2.2 => ecosystem/atlassian/fisheye-crucible/3/3.0.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.2.3 => ecosystem/atlassian/fisheye-crucible/3/3.0.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.2.4 => ecosystem/atlassian/fisheye-crucible/3/3.0.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.2.5 => ecosystem/atlassian/fisheye-crucible/3/3.1.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.3.0 => ecosystem/atlassian/fisheye-crucible/3/3.1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.3.1 => ecosystem/atlassian/fisheye-crucible/3/3.1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.3.2 => ecosystem/atlassian/fisheye-crucible/3/3.1.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.3.3 => ecosystem/atlassian/fisheye-crucible/3/3.1.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.3.4 => ecosystem/atlassian/fisheye-crucible/3/3.1.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.4.0 => ecosystem/atlassian/fisheye-crucible/3/3.1.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.7/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.7/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.4.3 => ecosystem/atlassian/fisheye-crucible/3/3.1.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.4.4 => ecosystem/atlassian/fisheye-crucible/3/3.10.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.4.5 => ecosystem/atlassian/fisheye-crucible/3/3.10.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.4.6 => ecosystem/atlassian/fisheye-crucible/3/3.10.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.4.7 => ecosystem/atlassian/fisheye-crucible/3/3.10.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.5.0 => ecosystem/atlassian/fisheye-crucible/3/3.2.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.5.1 => ecosystem/atlassian/fisheye-crucible/3/3.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.5.2 => ecosystem/atlassian/fisheye-crucible/3/3.2.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.5.3 => ecosystem/atlassian/fisheye-crucible/3/3.2.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.5.4 => ecosystem/atlassian/fisheye-crucible/3/3.2.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.5.5 => ecosystem/atlassian/fisheye-crucible/3/3.2.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.6.0 => ecosystem/atlassian/fisheye-crucible/3/3.3.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.6.1 => ecosystem/atlassian/fisheye-crucible/3/3.3.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.6.2 => ecosystem/atlassian/fisheye-crucible/3/3.3.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.6.3 => ecosystem/atlassian/fisheye-crucible/3/3.3.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.6.4 => ecosystem/atlassian/fisheye-crucible/3/3.3.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.7.0 => ecosystem/atlassian/fisheye-crucible/3/3.4.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.7.1 => ecosystem/atlassian/fisheye-crucible/3/3.4.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.8.0 => ecosystem/atlassian/fisheye-crucible/3/3.4.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.8.1 => ecosystem/atlassian/fisheye-crucible/3/3.4.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.9.0 => ecosystem/atlassian/fisheye-crucible/3/3.4.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.7/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.7/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.9.1 => ecosystem/atlassian/fisheye-crucible/3/3.4.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/3/3.9.2 => ecosystem/atlassian/fisheye-crucible/3/3.5.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.0.2 => ecosystem/atlassian/fisheye-crucible/3/3.5.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.0.3 => ecosystem/atlassian/fisheye-crucible/3/3.5.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.0.4 => ecosystem/atlassian/fisheye-crucible/3/3.5.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.1.0 => ecosystem/atlassian/fisheye-crucible/3/3.5.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.1.1 => ecosystem/atlassian/fisheye-crucible/3/3.5.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.1.2 => ecosystem/atlassian/fisheye-crucible/3/3.6.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.1.3 => ecosystem/atlassian/fisheye-crucible/3/3.6.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.2.0 => ecosystem/atlassian/fisheye-crucible/3/3.6.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.2.1 => ecosystem/atlassian/fisheye-crucible/3/3.6.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.2.2 => ecosystem/atlassian/fisheye-crucible/3/3.6.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.7.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.7.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.2.3 => ecosystem/atlassian/fisheye-crucible/3/3.7.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.7.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.7.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.3.0 => ecosystem/atlassian/fisheye-crucible/3/3.7.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.8.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.8.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.3.1 => ecosystem/atlassian/fisheye-crucible/3/3.8.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.8.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.8.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.3.2 => ecosystem/atlassian/fisheye-crucible/3/3.8.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.3.3 => ecosystem/atlassian/fisheye-crucible/3/3.9.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.4.0 => ecosystem/atlassian/fisheye-crucible/3/3.9.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.4.1 => ecosystem/atlassian/fisheye-crucible/3/3.9.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.4.2 => ecosystem/atlassian/fisheye-crucible/4/4.0.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.4.3 => ecosystem/atlassian/fisheye-crucible/4/4.0.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.4.5 => ecosystem/atlassian/fisheye-crucible/4/4.0.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.4.6 => ecosystem/atlassian/fisheye-crucible/4/4.1.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.4.7 => ecosystem/atlassian/fisheye-crucible/4/4.1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.5.0 => ecosystem/atlassian/fisheye-crucible/4/4.1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.5.1 => ecosystem/atlassian/fisheye-crucible/4/4.1.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.5.2 => ecosystem/atlassian/fisheye-crucible/4/4.2.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.5.3 => ecosystem/atlassian/fisheye-crucible/4/4.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.5.4 => ecosystem/atlassian/fisheye-crucible/4/4.2.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.6.0 => ecosystem/atlassian/fisheye-crucible/4/4.2.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.6.1 => ecosystem/atlassian/fisheye-crucible/4/4.3.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.7.0 => ecosystem/atlassian/fisheye-crucible/4/4.3.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.7.1 => ecosystem/atlassian/fisheye-crucible/4/4.3.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.7.2 => ecosystem/atlassian/fisheye-crucible/4/4.3.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.7.3 => ecosystem/atlassian/fisheye-crucible/4/4.4.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.8.0 => ecosystem/atlassian/fisheye-crucible/4/4.4.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.8.1 => ecosystem/atlassian/fisheye-crucible/4/4.4.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.8.2 => ecosystem/atlassian/fisheye-crucible/4/4.4.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.5/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.8.3 => ecosystem/atlassian/fisheye-crucible/4/4.4.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.6/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.8.4 => ecosystem/atlassian/fisheye-crucible/4/4.4.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.7/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.7/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.8.5 => ecosystem/atlassian/fisheye-crucible/4/4.4.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.0/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/4/4.8.6 => ecosystem/atlassian/fisheye-crucible/4/4.5.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.1/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/latest => ecosystem/atlassian/fisheye-crucible/4/4.5.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.2/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/templates/2 => ecosystem/atlassian/fisheye-crucible/4/4.5.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.3/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/templates/3 => ecosystem/atlassian/fisheye-crucible/4/4.5.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.4/Dockerfile (100%) rename linux/{atlassian/fisheye-crucible/templates/4 => ecosystem/atlassian/fisheye-crucible/4/4.5.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.6.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.6.0/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.0.1a => ecosystem/atlassian/fisheye-crucible/4/4.6.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.6.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.6.1/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.1.3 => ecosystem/atlassian/fisheye-crucible/4/4.6.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.0/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.2.5 => ecosystem/atlassian/fisheye-crucible/4/4.7.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.1/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.3.3 => ecosystem/atlassian/fisheye-crucible/4/4.7.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.2/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.3.4 => ecosystem/atlassian/fisheye-crucible/4/4.7.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.3/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.3.5 => ecosystem/atlassian/fisheye-crucible/4/4.7.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.0/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.3.6 => ecosystem/atlassian/fisheye-crucible/4/4.8.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.1/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.3.7 => ecosystem/atlassian/fisheye-crucible/4/4.8.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.2/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.3.8 => ecosystem/atlassian/fisheye-crucible/4/4.8.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.3/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.4.1 => ecosystem/atlassian/fisheye-crucible/4/4.8.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.4/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.4.2 => ecosystem/atlassian/fisheye-crucible/4/4.8.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.5/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.4.3 => ecosystem/atlassian/fisheye-crucible/4/4.8.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.6/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.4 => ecosystem/atlassian/fisheye-crucible/4/4.8.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/README.md (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/latest/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/latest/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.5.1 => ecosystem/atlassian/fisheye-crucible/latest}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/latest/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/latest/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/templates/2/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.5.2 => ecosystem/atlassian/fisheye-crucible/templates/2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/templates/2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/templates/2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/templates/3/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.5.3 => ecosystem/atlassian/fisheye-crucible/templates/3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/templates/3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/templates/3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/templates/4/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.5.4 => ecosystem/atlassian/fisheye-crucible/templates/4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/templates/4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye-crucible/templates/4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.0.1a/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.0.1a/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.5 => ecosystem/atlassian/fisheye/1/1.0.1a}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.0.1a/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.0.1a/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.1.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.1.3/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.0 => ecosystem/atlassian/fisheye/1/1.1.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.1.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.2.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.2.5/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.0Beta1 => ecosystem/atlassian/fisheye/1/1.2.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.2.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.2.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.3/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.0Beta2 => ecosystem/atlassian/fisheye/1/1.3.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.4/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.1 => ecosystem/atlassian/fisheye/1/1.3.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.5/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.3 => ecosystem/atlassian/fisheye/1/1.3.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.6/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.4 => ecosystem/atlassian/fisheye/1/1.3.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.7/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.7/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.5.a => ecosystem/atlassian/fisheye/1/1.3.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.8/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.8/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.5 => ecosystem/atlassian/fisheye/1/1.3.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.3.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.1/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.5a => ecosystem/atlassian/fisheye/1/1.4.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.2/Dockerfile (100%) rename linux/{atlassian/fisheye/1/1.6.6 => ecosystem/atlassian/fisheye/1/1.4.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.3/Dockerfile (100%) rename linux/{atlassian/fisheye/templates/1 => ecosystem/atlassian/fisheye/1/1.4.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4/Dockerfile (100%) rename linux/{atlassian/jira/5/5.0.1 => ecosystem/atlassian/fisheye/1/1.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.1/Dockerfile (100%) rename linux/{atlassian/jira/5/5.0.2 => ecosystem/atlassian/fisheye/1/1.5.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.2/Dockerfile (100%) rename linux/{atlassian/jira/5/5.0.3 => ecosystem/atlassian/fisheye/1/1.5.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.3/Dockerfile (100%) rename linux/{atlassian/jira/5/5.0.4 => ecosystem/atlassian/fisheye/1/1.5.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.4/Dockerfile (100%) rename linux/{atlassian/jira/5/5.0.5 => ecosystem/atlassian/fisheye/1/1.5.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5/Dockerfile (100%) rename linux/{atlassian/jira/5/5.0.6 => ecosystem/atlassian/fisheye/1/1.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0/Dockerfile (100%) rename linux/{atlassian/jira/5/5.0.7 => ecosystem/atlassian/fisheye/1/1.6.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0Beta1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0Beta1/Dockerfile (100%) rename linux/{atlassian/jira/5/5.0 => ecosystem/atlassian/fisheye/1/1.6.0Beta1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0Beta2/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0Beta2/Dockerfile (100%) rename linux/{atlassian/jira/5/5.1.1 => ecosystem/atlassian/fisheye/1/1.6.0Beta2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.1/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.1/Dockerfile (100%) rename linux/{atlassian/jira/5/5.1.2 => ecosystem/atlassian/fisheye/1/1.6.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.3/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.3/Dockerfile (100%) rename linux/{atlassian/jira/5/5.1.3 => ecosystem/atlassian/fisheye/1/1.6.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.4/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.4/Dockerfile (100%) rename linux/{atlassian/jira/5/5.1.4 => ecosystem/atlassian/fisheye/1/1.6.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5.a/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5.a/Dockerfile (100%) rename linux/{atlassian/jira/5/5.1.5 => ecosystem/atlassian/fisheye/1/1.6.5.a}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5.a/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5.a/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5/Dockerfile (100%) rename linux/{atlassian/jira/5/5.1.6 => ecosystem/atlassian/fisheye/1/1.6.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5a/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5a/Dockerfile (100%) rename linux/{atlassian/jira/5/5.1.7 => ecosystem/atlassian/fisheye/1/1.6.5a}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5a/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.5a/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.6/.env (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.6/Dockerfile (100%) rename linux/{atlassian/jira/5/5.1.8 => ecosystem/atlassian/fisheye/1/1.6.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/1/1.6.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/fisheye/templates/1/Dockerfile (100%) rename linux/{atlassian/jira/5/5.1 => ecosystem/atlassian/fisheye/templates/1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/fisheye/templates/1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/fisheye/templates/1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.1/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.1 => ecosystem/atlassian/jira/5/5.0.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.2/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.10 => ecosystem/atlassian/jira/5/5.0.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.3/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.11 => ecosystem/atlassian/jira/5/5.0.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.4/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.2 => ecosystem/atlassian/jira/5/5.0.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.5/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.3 => ecosystem/atlassian/jira/5/5.0.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.6/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.4.1 => ecosystem/atlassian/jira/5/5.0.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.7/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.4 => ecosystem/atlassian/jira/5/5.0.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.5 => ecosystem/atlassian/jira/5/5.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.1/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.6 => ecosystem/atlassian/jira/5/5.1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.2/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.7 => ecosystem/atlassian/jira/5/5.1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.3/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.8 => ecosystem/atlassian/jira/5/5.1.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.4/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2.9 => ecosystem/atlassian/jira/5/5.1.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.5/Dockerfile (100%) rename linux/{atlassian/jira/5/5.2 => ecosystem/atlassian/jira/5/5.1.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.6/Dockerfile (100%) rename linux/{atlassian/jira/6/6.0.1 => ecosystem/atlassian/jira/5/5.1.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.7/Dockerfile (100%) rename linux/{atlassian/jira/6/6.0.2 => ecosystem/atlassian/jira/5/5.1.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.8/Dockerfile (100%) rename linux/{atlassian/jira/6/6.0.3 => ecosystem/atlassian/jira/5/5.1.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1/Dockerfile (100%) rename linux/{atlassian/jira/6/6.0.4 => ecosystem/atlassian/jira/5/5.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.1/Dockerfile (100%) rename linux/{atlassian/jira/6/6.0.5 => ecosystem/atlassian/jira/5/5.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.10/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.10/Dockerfile (100%) rename linux/{atlassian/jira/6/6.0.6 => ecosystem/atlassian/jira/5/5.2.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.11/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.11/Dockerfile (100%) rename linux/{atlassian/jira/6/6.0.7 => ecosystem/atlassian/jira/5/5.2.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.2/Dockerfile (100%) rename linux/{atlassian/jira/6/6.0.8 => ecosystem/atlassian/jira/5/5.2.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.3/Dockerfile (100%) rename linux/{atlassian/jira/6/6.0 => ecosystem/atlassian/jira/5/5.2.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.4.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.4.1/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1.1 => ecosystem/atlassian/jira/5/5.2.4.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.4.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.4.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.4/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1.2 => ecosystem/atlassian/jira/5/5.2.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.5/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1.3 => ecosystem/atlassian/jira/5/5.2.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.6/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1.4 => ecosystem/atlassian/jira/5/5.2.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.7/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1.5 => ecosystem/atlassian/jira/5/5.2.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.8/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1.6 => ecosystem/atlassian/jira/5/5.2.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.9/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1.7 => ecosystem/atlassian/jira/5/5.2.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1.8 => ecosystem/atlassian/jira/5/5.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/5/5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.1/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1.9 => ecosystem/atlassian/jira/6/6.0.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.2/Dockerfile (100%) rename linux/{atlassian/jira/6/6.1 => ecosystem/atlassian/jira/6/6.0.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.3/Dockerfile (100%) rename linux/{atlassian/jira/6/6.2.1 => ecosystem/atlassian/jira/6/6.0.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.4/Dockerfile (100%) rename linux/{atlassian/jira/6/6.2.2 => ecosystem/atlassian/jira/6/6.0.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.5/Dockerfile (100%) rename linux/{atlassian/jira/6/6.2.3 => ecosystem/atlassian/jira/6/6.0.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.6/Dockerfile (100%) rename linux/{atlassian/jira/6/6.2.4 => ecosystem/atlassian/jira/6/6.0.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.7/Dockerfile (100%) rename linux/{atlassian/jira/6/6.2.5 => ecosystem/atlassian/jira/6/6.0.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.8/Dockerfile (100%) rename linux/{atlassian/jira/6/6.2.6 => ecosystem/atlassian/jira/6/6.0.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0/Dockerfile (100%) rename linux/{atlassian/jira/6/6.2.7 => ecosystem/atlassian/jira/6/6.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.1/Dockerfile (100%) rename linux/{atlassian/jira/6/6.2 => ecosystem/atlassian/jira/6/6.1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.2/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.1 => ecosystem/atlassian/jira/6/6.1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.3/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.10 => ecosystem/atlassian/jira/6/6.1.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.4/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.11 => ecosystem/atlassian/jira/6/6.1.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.5/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.12 => ecosystem/atlassian/jira/6/6.1.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.6/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.13 => ecosystem/atlassian/jira/6/6.1.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.7/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.14 => ecosystem/atlassian/jira/6/6.1.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.8/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.15 => ecosystem/atlassian/jira/6/6.1.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.9/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.3 => ecosystem/atlassian/jira/6/6.1.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.4 => ecosystem/atlassian/jira/6/6.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.1/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.5 => ecosystem/atlassian/jira/6/6.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.2/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.6 => ecosystem/atlassian/jira/6/6.2.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.3/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.7 => ecosystem/atlassian/jira/6/6.2.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.4/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.8 => ecosystem/atlassian/jira/6/6.2.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.5/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3.9 => ecosystem/atlassian/jira/6/6.2.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.6/Dockerfile (100%) rename linux/{atlassian/jira/6/6.3 => ecosystem/atlassian/jira/6/6.2.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.7/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.1 => ecosystem/atlassian/jira/6/6.2.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.10 => ecosystem/atlassian/jira/6/6.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.1/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.11 => ecosystem/atlassian/jira/6/6.3.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.10/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.10/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.12 => ecosystem/atlassian/jira/6/6.3.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.11/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.11/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.13 => ecosystem/atlassian/jira/6/6.3.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.12/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.12/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.14 => ecosystem/atlassian/jira/6/6.3.12}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.12/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.12/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.13/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.13/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.2 => ecosystem/atlassian/jira/6/6.3.13}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.13/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.13/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.14/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.14/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.3 => ecosystem/atlassian/jira/6/6.3.14}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.14/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.14/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.15/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.15/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.4 => ecosystem/atlassian/jira/6/6.3.15}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.15/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.15/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.3/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.5 => ecosystem/atlassian/jira/6/6.3.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.4/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.6 => ecosystem/atlassian/jira/6/6.3.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.5/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.7 => ecosystem/atlassian/jira/6/6.3.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.6/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.8 => ecosystem/atlassian/jira/6/6.3.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.7/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4.9 => ecosystem/atlassian/jira/6/6.3.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.8/Dockerfile (100%) rename linux/{atlassian/jira/6/6.4 => ecosystem/atlassian/jira/6/6.3.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.9/Dockerfile (100%) rename linux/{atlassian/jira/7/7.0.0 => ecosystem/atlassian/jira/6/6.3.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3/Dockerfile (100%) rename linux/{atlassian/jira/7/7.0.10 => ecosystem/atlassian/jira/6/6.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.0.11 => ecosystem/atlassian/jira/6/6.4.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.10/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.10/Dockerfile (100%) rename linux/{atlassian/jira/7/7.0.2 => ecosystem/atlassian/jira/6/6.4.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.11/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.11/Dockerfile (100%) rename linux/{atlassian/jira/7/7.0.4 => ecosystem/atlassian/jira/6/6.4.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.12/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.12/Dockerfile (100%) rename linux/{atlassian/jira/7/7.0.5 => ecosystem/atlassian/jira/6/6.4.12}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.12/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.12/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.13/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.13/Dockerfile (100%) rename linux/{atlassian/jira/7/7.1.0 => ecosystem/atlassian/jira/6/6.4.13}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.13/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.13/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.14/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.14/Dockerfile (100%) rename linux/{atlassian/jira/7/7.1.1 => ecosystem/atlassian/jira/6/6.4.14}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.14/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.14/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.1.10 => ecosystem/atlassian/jira/6/6.4.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.3/Dockerfile (100%) rename linux/{atlassian/jira/7/7.1.2 => ecosystem/atlassian/jira/6/6.4.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.4/Dockerfile (100%) rename linux/{atlassian/jira/7/7.1.4 => ecosystem/atlassian/jira/6/6.4.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.5/Dockerfile (100%) rename linux/{atlassian/jira/7/7.1.6 => ecosystem/atlassian/jira/6/6.4.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.6/Dockerfile (100%) rename linux/{atlassian/jira/7/7.1.7 => ecosystem/atlassian/jira/6/6.4.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.7/Dockerfile (100%) rename linux/{atlassian/jira/7/7.1.8 => ecosystem/atlassian/jira/6/6.4.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.8/Dockerfile (100%) rename linux/{atlassian/jira/7/7.1.9 => ecosystem/atlassian/jira/6/6.4.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.9/Dockerfile (100%) rename linux/{atlassian/jira/7/7.10.0 => ecosystem/atlassian/jira/6/6.4.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4/Dockerfile (100%) rename linux/{atlassian/jira/7/7.10.1 => ecosystem/atlassian/jira/6/6.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/6/6.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.10.2 => ecosystem/atlassian/jira/7/7.0.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.10/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.10/Dockerfile (100%) rename linux/{atlassian/jira/7/7.11.0 => ecosystem/atlassian/jira/7/7.0.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.11/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.11/Dockerfile (100%) rename linux/{atlassian/jira/7/7.11.1 => ecosystem/atlassian/jira/7/7.0.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.11.2 => ecosystem/atlassian/jira/7/7.0.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.4/Dockerfile (100%) rename linux/{atlassian/jira/7/7.12.0 => ecosystem/atlassian/jira/7/7.0.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.5/Dockerfile (100%) rename linux/{atlassian/jira/7/7.12.1 => ecosystem/atlassian/jira/7/7.0.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.0.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.12.3 => ecosystem/atlassian/jira/7/7.1.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.0 => ecosystem/atlassian/jira/7/7.1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.10/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.10/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.1 => ecosystem/atlassian/jira/7/7.1.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.11 => ecosystem/atlassian/jira/7/7.1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.4/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.12 => ecosystem/atlassian/jira/7/7.1.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.6/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.13 => ecosystem/atlassian/jira/7/7.1.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.7/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.14 => ecosystem/atlassian/jira/7/7.1.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.8/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.15 => ecosystem/atlassian/jira/7/7.1.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.9/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.16 => ecosystem/atlassian/jira/7/7.1.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.1.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.17 => ecosystem/atlassian/jira/7/7.10.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.18 => ecosystem/atlassian/jira/7/7.10.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.2 => ecosystem/atlassian/jira/7/7.10.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.10.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.3 => ecosystem/atlassian/jira/7/7.11.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.4 => ecosystem/atlassian/jira/7/7.11.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.5 => ecosystem/atlassian/jira/7/7.11.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.11.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.6 => ecosystem/atlassian/jira/7/7.12.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.8 => ecosystem/atlassian/jira/7/7.12.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.3/Dockerfile (100%) rename linux/{atlassian/jira/7/7.13.9 => ecosystem/atlassian/jira/7/7.12.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.12.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.0 => ecosystem/atlassian/jira/7/7.13.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.1 => ecosystem/atlassian/jira/7/7.13.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.11/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.11/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.10 => ecosystem/atlassian/jira/7/7.13.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.12/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.12/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.11 => ecosystem/atlassian/jira/7/7.13.12}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.12/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.12/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.13/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.13/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.12 => ecosystem/atlassian/jira/7/7.13.13}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.13/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.13/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.14/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.14/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.13 => ecosystem/atlassian/jira/7/7.13.14}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.14/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.14/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.15/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.15/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.14 => ecosystem/atlassian/jira/7/7.13.15}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.15/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.15/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.16/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.16/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.15 => ecosystem/atlassian/jira/7/7.13.16}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.16/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.16/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.17/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.17/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.2 => ecosystem/atlassian/jira/7/7.13.17}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.17/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.17/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.18/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.18/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.3 => ecosystem/atlassian/jira/7/7.13.18}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.18/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.18/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.4 => ecosystem/atlassian/jira/7/7.13.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.3/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.6 => ecosystem/atlassian/jira/7/7.13.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.4/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.7 => ecosystem/atlassian/jira/7/7.13.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.5/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.8 => ecosystem/atlassian/jira/7/7.13.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.6/Dockerfile (100%) rename linux/{atlassian/jira/7/7.2.9 => ecosystem/atlassian/jira/7/7.13.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.8/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.0 => ecosystem/atlassian/jira/7/7.13.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.9/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.1 => ecosystem/atlassian/jira/7/7.13.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.13.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.2 => ecosystem/atlassian/jira/7/7.2.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.3 => ecosystem/atlassian/jira/7/7.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.10/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.10/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.4 => ecosystem/atlassian/jira/7/7.2.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.11/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.11/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.5 => ecosystem/atlassian/jira/7/7.2.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.12/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.12/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.6 => ecosystem/atlassian/jira/7/7.2.12}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.12/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.12/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.13/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.13/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.7 => ecosystem/atlassian/jira/7/7.2.13}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.13/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.13/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.14/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.14/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.8 => ecosystem/atlassian/jira/7/7.2.14}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.14/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.14/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.15/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.15/Dockerfile (100%) rename linux/{atlassian/jira/7/7.3.9 => ecosystem/atlassian/jira/7/7.2.15}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.15/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.15/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.4.0 => ecosystem/atlassian/jira/7/7.2.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.3/Dockerfile (100%) rename linux/{atlassian/jira/7/7.4.1 => ecosystem/atlassian/jira/7/7.2.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.4/Dockerfile (100%) rename linux/{atlassian/jira/7/7.4.2 => ecosystem/atlassian/jira/7/7.2.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.6/Dockerfile (100%) rename linux/{atlassian/jira/7/7.4.3 => ecosystem/atlassian/jira/7/7.2.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.7/Dockerfile (100%) rename linux/{atlassian/jira/7/7.4.4 => ecosystem/atlassian/jira/7/7.2.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.8/Dockerfile (100%) rename linux/{atlassian/jira/7/7.4.5 => ecosystem/atlassian/jira/7/7.2.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.9/Dockerfile (100%) rename linux/{atlassian/jira/7/7.4.6 => ecosystem/atlassian/jira/7/7.2.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.2.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.5.0 => ecosystem/atlassian/jira/7/7.3.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.5.1 => ecosystem/atlassian/jira/7/7.3.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.5.2 => ecosystem/atlassian/jira/7/7.3.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.3/Dockerfile (100%) rename linux/{atlassian/jira/7/7.5.3 => ecosystem/atlassian/jira/7/7.3.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.4/Dockerfile (100%) rename linux/{atlassian/jira/7/7.5.4 => ecosystem/atlassian/jira/7/7.3.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.5/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.0 => ecosystem/atlassian/jira/7/7.3.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.6/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.1 => ecosystem/atlassian/jira/7/7.3.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.7/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.10 => ecosystem/atlassian/jira/7/7.3.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.8/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.11 => ecosystem/atlassian/jira/7/7.3.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.9/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.12 => ecosystem/atlassian/jira/7/7.3.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.3.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.13 => ecosystem/atlassian/jira/7/7.4.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.14 => ecosystem/atlassian/jira/7/7.4.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.15 => ecosystem/atlassian/jira/7/7.4.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.3/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.16 => ecosystem/atlassian/jira/7/7.4.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.4/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.17 => ecosystem/atlassian/jira/7/7.4.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.5/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.2 => ecosystem/atlassian/jira/7/7.4.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.6/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.3 => ecosystem/atlassian/jira/7/7.4.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.4.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.4 => ecosystem/atlassian/jira/7/7.5.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.6 => ecosystem/atlassian/jira/7/7.5.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.2/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.7 => ecosystem/atlassian/jira/7/7.5.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.3/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.8 => ecosystem/atlassian/jira/7/7.5.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.4/Dockerfile (100%) rename linux/{atlassian/jira/7/7.6.9 => ecosystem/atlassian/jira/7/7.5.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.5.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.0/Dockerfile (100%) rename linux/{atlassian/jira/7/7.7.0 => ecosystem/atlassian/jira/7/7.6.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.1/Dockerfile (100%) rename linux/{atlassian/jira/7/7.7.1 => ecosystem/atlassian/jira/7/7.6.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.10/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.10/Dockerfile (100%) rename linux/{atlassian/jira/7/7.7.2 => ecosystem/atlassian/jira/7/7.6.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.11/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.11/Dockerfile (100%) rename linux/{atlassian/jira/7/7.7.4 => ecosystem/atlassian/jira/7/7.6.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.12/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.12/Dockerfile (100%) rename linux/{atlassian/jira/7/7.8.0 => ecosystem/atlassian/jira/7/7.6.12}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.12/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.12/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.13/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.13/Dockerfile (100%) rename linux/{atlassian/jira/7/7.8.1 => ecosystem/atlassian/jira/7/7.6.13}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.13/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.13/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.14/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.14/Dockerfile (100%) rename linux/{atlassian/jira/7/7.8.2 => ecosystem/atlassian/jira/7/7.6.14}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.14/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.14/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.15/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.15/Dockerfile (100%) rename linux/{atlassian/jira/7/7.8.4 => ecosystem/atlassian/jira/7/7.6.15}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.15/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.15/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.16/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.16/Dockerfile (100%) rename linux/{atlassian/jira/7/7.9.0 => ecosystem/atlassian/jira/7/7.6.16}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.16/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.16/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.17/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.17/Dockerfile (100%) rename linux/{atlassian/jira/7/7.9.2 => ecosystem/atlassian/jira/7/7.6.17}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.17/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.17/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.2/Dockerfile (100%) rename linux/{atlassian/jira/8/8.0.0 => ecosystem/atlassian/jira/7/7.6.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.3/Dockerfile (100%) rename linux/{atlassian/jira/8/8.0.2 => ecosystem/atlassian/jira/7/7.6.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.4/Dockerfile (100%) rename linux/{atlassian/jira/8/8.0.3 => ecosystem/atlassian/jira/7/7.6.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.6/Dockerfile (100%) rename linux/{atlassian/jira/8/8.1.0 => ecosystem/atlassian/jira/7/7.6.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.7/Dockerfile (100%) rename linux/{atlassian/jira/8/8.1.1 => ecosystem/atlassian/jira/7/7.6.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.8/Dockerfile (100%) rename linux/{atlassian/jira/8/8.1.2 => ecosystem/atlassian/jira/7/7.6.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.9/Dockerfile (100%) rename linux/{atlassian/jira/8/8.1.3 => ecosystem/atlassian/jira/7/7.6.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.6.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.0/Dockerfile (100%) rename linux/{atlassian/jira/8/8.10.0 => ecosystem/atlassian/jira/7/7.7.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.1/Dockerfile (100%) rename linux/{atlassian/jira/8/8.10.1 => ecosystem/atlassian/jira/7/7.7.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.2/Dockerfile (100%) rename linux/{atlassian/jira/8/8.11.0 => ecosystem/atlassian/jira/7/7.7.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.4/Dockerfile (100%) rename linux/{atlassian/jira/8/8.11.1 => ecosystem/atlassian/jira/7/7.7.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.7.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.0/Dockerfile (100%) rename linux/{atlassian/jira/8/8.12.0 => ecosystem/atlassian/jira/7/7.8.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.1/Dockerfile (100%) rename linux/{atlassian/jira/8/8.12.1 => ecosystem/atlassian/jira/7/7.8.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.2/Dockerfile (100%) rename linux/{atlassian/jira/8/8.12.2 => ecosystem/atlassian/jira/7/7.8.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.4/Dockerfile (100%) rename linux/{atlassian/jira/8/8.12.3 => ecosystem/atlassian/jira/7/7.8.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.8.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.9.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.9.0/Dockerfile (100%) rename linux/{atlassian/jira/8/8.13.0 => ecosystem/atlassian/jira/7/7.9.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.9.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.9.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.9.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.9.2/Dockerfile (100%) rename linux/{atlassian/jira/8/8.13.1 => ecosystem/atlassian/jira/7/7.9.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.9.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/7/7.9.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.0/Dockerfile (100%) rename linux/{atlassian/jira/8/8.13.2 => ecosystem/atlassian/jira/8/8.0.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.2/Dockerfile (100%) rename linux/{atlassian/jira/8/8.13.3 => ecosystem/atlassian/jira/8/8.0.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.3/Dockerfile (100%) rename linux/{atlassian/jira/8/8.13.4 => ecosystem/atlassian/jira/8/8.0.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.0.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.0/Dockerfile (100%) rename linux/{atlassian/jira/8/8.13.5 => ecosystem/atlassian/jira/8/8.1.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.1/Dockerfile (100%) rename linux/{atlassian/jira/8/8.13.6 => ecosystem/atlassian/jira/8/8.1.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.2/Dockerfile (100%) rename linux/{atlassian/jira/8/8.13.7 => ecosystem/atlassian/jira/8/8.1.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.3/Dockerfile (100%) rename linux/{atlassian/jira/8/8.13.8 => ecosystem/atlassian/jira/8/8.1.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.1.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.14.0 => ecosystem/atlassian/jira/8/8.10.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.14.1 => ecosystem/atlassian/jira/8/8.10.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.10.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.15.0 => ecosystem/atlassian/jira/8/8.11.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.15.1 => ecosystem/atlassian/jira/8/8.11.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.11.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.16.0 => ecosystem/atlassian/jira/8/8.12.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.16.1 => ecosystem/atlassian/jira/8/8.12.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.2/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.16.2 => ecosystem/atlassian/jira/8/8.12.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.3/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.17.0 => ecosystem/atlassian/jira/8/8.12.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.12.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.17.1 => ecosystem/atlassian/jira/8/8.13.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.2.0 => ecosystem/atlassian/jira/8/8.13.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.2/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.2.1 => ecosystem/atlassian/jira/8/8.13.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.3/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.2.2 => ecosystem/atlassian/jira/8/8.13.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.4/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.2.3 => ecosystem/atlassian/jira/8/8.13.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.5/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.2.4 => ecosystem/atlassian/jira/8/8.13.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.6/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.6/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.2.5 => ecosystem/atlassian/jira/8/8.13.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.7/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.7/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.2.6 => ecosystem/atlassian/jira/8/8.13.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.8/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.8/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.3.0 => ecosystem/atlassian/jira/8/8.13.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.13.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.3.1 => ecosystem/atlassian/jira/8/8.14.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.3.2 => ecosystem/atlassian/jira/8/8.14.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.14.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.3.3 => ecosystem/atlassian/jira/8/8.15.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.3.4 => ecosystem/atlassian/jira/8/8.15.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.15.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.3.5 => ecosystem/atlassian/jira/8/8.16.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.4.0 => ecosystem/atlassian/jira/8/8.16.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.2/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.4.1 => ecosystem/atlassian/jira/8/8.16.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.16.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.4.2 => ecosystem/atlassian/jira/8/8.17.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.4.3 => ecosystem/atlassian/jira/8/8.17.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.17.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.0 => ecosystem/atlassian/jira/8/8.2.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.1 => ecosystem/atlassian/jira/8/8.2.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.2/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.10 => ecosystem/atlassian/jira/8/8.2.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.3/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.11 => ecosystem/atlassian/jira/8/8.2.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.4/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.12 => ecosystem/atlassian/jira/8/8.2.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.5/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.13 => ecosystem/atlassian/jira/8/8.2.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.6/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.6/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.14 => ecosystem/atlassian/jira/8/8.2.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.2.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.15 => ecosystem/atlassian/jira/8/8.3.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.16 => ecosystem/atlassian/jira/8/8.3.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.2/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.2 => ecosystem/atlassian/jira/8/8.3.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.3/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.3 => ecosystem/atlassian/jira/8/8.3.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.4/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.4 => ecosystem/atlassian/jira/8/8.3.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.5/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.5 => ecosystem/atlassian/jira/8/8.3.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.3.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.6 => ecosystem/atlassian/jira/8/8.4.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.7 => ecosystem/atlassian/jira/8/8.4.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.2/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.8 => ecosystem/atlassian/jira/8/8.4.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.3/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.5.9 => ecosystem/atlassian/jira/8/8.4.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.4.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.0/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.6.0 => ecosystem/atlassian/jira/8/8.5.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.1/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.6.1 => ecosystem/atlassian/jira/8/8.5.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.10/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.10/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.10/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.7.0 => ecosystem/atlassian/jira/8/8.5.10}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.10/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.10/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.11/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.11/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.11/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.7.1 => ecosystem/atlassian/jira/8/8.5.11}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.11/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.11/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.12/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.12/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.12/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.8.0 => ecosystem/atlassian/jira/8/8.5.12}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.12/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.12/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.13/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.13/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.13/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.8.1 => ecosystem/atlassian/jira/8/8.5.13}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.13/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.13/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.14/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.14/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.14/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.9.0 => ecosystem/atlassian/jira/8/8.5.14}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.14/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.14/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.15/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.15/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.15/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/8/8.9.1 => ecosystem/atlassian/jira/8/8.5.15}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.15/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.15/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.16/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.16/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.16/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/latest => ecosystem/atlassian/jira/8/8.5.16}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.16/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.16/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.2/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.2/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.2/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/templates/5 => ecosystem/atlassian/jira/8/8.5.2}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.2/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.3/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.3/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.3/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/templates/6 => ecosystem/atlassian/jira/8/8.5.3}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.3/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.4/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.4/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.4/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/templates/7 => ecosystem/atlassian/jira/8/8.5.4}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.4/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.5/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.5/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.5/Dockerfile.jdk11 (100%) rename linux/{atlassian/jira/templates/8 => ecosystem/atlassian/jira/8/8.5.5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.6/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.6/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.6/Dockerfile.jdk11 (100%) rename linux/{electron-release-server => ecosystem/atlassian/jira/8/8.5.6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.7/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.7/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.7/Dockerfile.jdk11 (100%) rename linux/{epicmorg/devel/jdk11 => ecosystem/atlassian/jira/8/8.5.7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.8/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.8/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.8/Dockerfile.jdk11 (100%) rename linux/{epicmorg/devel/jdk16 => ecosystem/atlassian/jira/8/8.5.8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.8/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.9/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.9/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.9/Dockerfile.jdk11 (100%) rename linux/{epicmorg/devel/jdk6 => ecosystem/atlassian/jira/8/8.5.9}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.9/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.5.9/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.0/Dockerfile.jdk11 (100%) rename linux/{epicmorg/devel/jdk7 => ecosystem/atlassian/jira/8/8.6.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.1/Dockerfile.jdk11 (100%) rename linux/{epicmorg/devel/jdk8 => ecosystem/atlassian/jira/8/8.6.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.6.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.0/Dockerfile.jdk11 (100%) rename linux/{epicmorg/devel/main => ecosystem/atlassian/jira/8/8.7.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.1/Dockerfile.jdk11 (100%) rename linux/{epicmorg/edge/jdk11 => ecosystem/atlassian/jira/8/8.7.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.7.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.0/Dockerfile.jdk11 (100%) rename linux/{epicmorg/edge/jdk16 => ecosystem/atlassian/jira/8/8.8.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.1/Dockerfile.jdk11 (100%) rename linux/{epicmorg/edge/jdk6 => ecosystem/atlassian/jira/8/8.8.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.8.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.0/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.0/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.0/Dockerfile.jdk11 (100%) rename linux/{epicmorg/edge/jdk7 => ecosystem/atlassian/jira/8/8.9.0}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.0/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.1/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.1/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.1/Dockerfile.jdk11 (100%) rename linux/{epicmorg/edge/jdk8 => ecosystem/atlassian/jira/8/8.9.1}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/8/8.9.1/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/README.md (100%) rename linux/{ => ecosystem}/atlassian/jira/latest/.env (100%) rename linux/{ => ecosystem}/atlassian/jira/latest/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/latest/Dockerfile.jdk11 (100%) rename linux/{epicmorg/edge/main => ecosystem/atlassian/jira/latest}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/latest/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/latest/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/5/Dockerfile (100%) rename linux/{epicmorg/prod/jdk11 => ecosystem/atlassian/jira/templates/5}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/5/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/5/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/6/Dockerfile (100%) rename linux/{epicmorg/prod/jdk16 => ecosystem/atlassian/jira/templates/6}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/6/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/6/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/7/Dockerfile (100%) rename linux/{epicmorg/prod/jdk6 => ecosystem/atlassian/jira/templates/7}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/7/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/7/entrypoint.sh (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/8/Dockerfile (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/8/Dockerfile.jdk11 (100%) rename linux/{epicmorg/prod/jdk7 => ecosystem/atlassian/jira/templates/8}/Makefile (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/8/docker-compose.yml (100%) rename linux/{ => ecosystem}/atlassian/jira/templates/8/entrypoint.sh (100%) rename linux/{ => ecosystem}/electron-release-server/Dockerfile (100%) rename linux/{epicmorg/prod/jdk8 => ecosystem/electron-release-server}/Makefile (100%) rename linux/{ => ecosystem}/electron-release-server/docker-compose.yml (100%) rename linux/{ => ecosystem}/electron-release-server/docker-compose.yml.example (100%) rename linux/{ => ecosystem}/epicmorg/README.md (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk11/Dockerfile (100%) rename linux/{epicmorg/prod/main => ecosystem/epicmorg/devel/jdk11}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk11/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk16/Dockerfile (100%) rename linux/{mattermost/latest => ecosystem/epicmorg/devel/jdk16}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk16/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk6/Dockerfile (100%) rename linux/{nextcloud/14 => ecosystem/epicmorg/devel/jdk6}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk6/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk7/Dockerfile (100%) rename linux/{nextcloud/15 => ecosystem/epicmorg/devel/jdk7}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk7/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk8/Dockerfile (100%) rename linux/{nextcloud/16 => ecosystem/epicmorg/devel/jdk8}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/devel/jdk8/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/devel/main/Dockerfile (100%) rename linux/{nextcloud/17 => ecosystem/epicmorg/devel/main}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/devel/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk11/Dockerfile (100%) rename linux/{nextcloud/18 => ecosystem/epicmorg/edge/jdk11}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk11/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk16/Dockerfile (100%) rename linux/{nextcloud/19 => ecosystem/epicmorg/edge/jdk16}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk16/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk6/Dockerfile (100%) rename linux/{nextcloud/20 => ecosystem/epicmorg/edge/jdk6}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk6/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk7/Dockerfile (100%) rename linux/{nextcloud/21 => ecosystem/epicmorg/edge/jdk7}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk7/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk8/Dockerfile (100%) rename linux/{nextcloud/22 => ecosystem/epicmorg/edge/jdk8}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/edge/jdk8/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/edge/main/Dockerfile (100%) rename linux/{nextcloud/latest => ecosystem/epicmorg/edge/main}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/edge/main/docker-compose.yml (100%) create mode 100644 linux/ecosystem/epicmorg/edge/main/sources.list rename linux/{ => ecosystem}/epicmorg/prod/jdk11/Dockerfile (100%) rename linux/{nginx/1.14.2/main => ecosystem/epicmorg/prod/jdk11}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/prod/jdk11/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/prod/jdk16/Dockerfile (100%) rename linux/{nginx/1.14.2/php => ecosystem/epicmorg/prod/jdk16}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/prod/jdk16/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/prod/jdk6/Dockerfile (100%) rename linux/{nginx/1.14.2/rtmp-hls => ecosystem/epicmorg/prod/jdk6}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/prod/jdk6/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/prod/jdk7/Dockerfile (100%) rename linux/{nginx/1.15.12/main => ecosystem/epicmorg/prod/jdk7}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/prod/jdk7/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/prod/jdk8/Dockerfile (100%) rename linux/{nginx/1.15.12/php => ecosystem/epicmorg/prod/jdk8}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/prod/jdk8/docker-compose.yml (100%) rename linux/{ => ecosystem}/epicmorg/prod/main/Dockerfile (100%) rename linux/{nginx/1.15.12/rtmp-hls => ecosystem/epicmorg/prod/main}/Makefile (100%) rename linux/{ => ecosystem}/epicmorg/prod/main/deb-multimedia-keyring.gpg (100%) rename linux/{ => ecosystem}/epicmorg/prod/main/docker-compose.yml (100%) rename linux/{zabbix/web => ecosystem/epicmorg/prod/main}/locale.gen (100%) rename linux/{zabbix/web => ecosystem/epicmorg/prod/main}/locale.gen.full (100%) create mode 100644 linux/ecosystem/epicmorg/prod/main/sources.list rename linux/{ => ecosystem}/nginx/1.14.2/main/.env (100%) rename linux/{ => ecosystem}/nginx/1.14.2/main/Dockerfile (100%) rename linux/{nginx/1.16.1 => ecosystem/nginx/1.14.2}/main/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.14.2/main/README.md (100%) rename linux/{ => ecosystem}/nginx/1.14.2/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.14.2/main/pre/ip2location-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.14.2/main/pre/luajit2-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.14.2/main/pre/nginx-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.14.2/main/pre/ngninx.pre.tar.gz (100%) rename linux/{ => ecosystem}/nginx/1.14.2/php/.env (100%) rename linux/{ => ecosystem}/nginx/1.14.2/php/Dockerfile (100%) rename linux/{nginx/1.16.1 => ecosystem/nginx/1.14.2}/php/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.14.2/php/README.md (100%) rename linux/{ => ecosystem}/nginx/1.14.2/php/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/.env (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/Dockerfile (100%) rename linux/{nginx/1.16.1 => ecosystem/nginx/1.14.2}/rtmp-hls/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/README.md (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/conf/nginx.conf (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/players/dash.html (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/players/hls.html (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/players/rtmp.html (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/players/rtmp_hls.html (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/{ => ecosystem}/nginx/1.14.2/rtmp-hls/sources.list.d/sources.stretch.list (100%) rename linux/{ => ecosystem}/nginx/1.15.12/main/.env (100%) rename linux/{ => ecosystem}/nginx/1.15.12/main/Dockerfile (100%) rename linux/{nginx/1.17.10 => ecosystem/nginx/1.15.12}/main/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.15.12/main/README.md (100%) rename linux/{ => ecosystem}/nginx/1.15.12/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.15.12/main/pre/ip2location-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.15.12/main/pre/luajit2-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.15.12/main/pre/nginx-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.15.12/main/pre/ngninx.pre.tar.gz (100%) rename linux/{ => ecosystem}/nginx/1.15.12/php/.env (100%) rename linux/{ => ecosystem}/nginx/1.15.12/php/Dockerfile (100%) rename linux/{nginx/1.17.10 => ecosystem/nginx/1.15.12}/php/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.15.12/php/README.md (100%) rename linux/{ => ecosystem}/nginx/1.15.12/php/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/.env (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/Dockerfile (100%) rename linux/{nginx/1.17.10 => ecosystem/nginx/1.15.12}/rtmp-hls/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/README.md (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/conf/nginx.conf (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/players/dash.html (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/players/hls.html (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/players/rtmp.html (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/players/rtmp_hls.html (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/{ => ecosystem}/nginx/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list (100%) rename linux/{ => ecosystem}/nginx/1.16.1/main/.env (100%) rename linux/{ => ecosystem}/nginx/1.16.1/main/Dockerfile (100%) rename linux/{nginx/1.18.0 => ecosystem/nginx/1.16.1}/main/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.16.1/main/README.md (100%) rename linux/{ => ecosystem}/nginx/1.16.1/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.16.1/main/pre/ip2location-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.16.1/main/pre/luajit2-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.16.1/main/pre/nginx-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.16.1/main/pre/ngninx.pre.tar.gz (100%) rename linux/{ => ecosystem}/nginx/1.16.1/php/.env (100%) rename linux/{ => ecosystem}/nginx/1.16.1/php/Dockerfile (100%) rename linux/{nginx/1.18.0 => ecosystem/nginx/1.16.1}/php/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.16.1/php/README.md (100%) rename linux/{ => ecosystem}/nginx/1.16.1/php/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/.env (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/Dockerfile (100%) rename linux/{nginx/1.18.0 => ecosystem/nginx/1.16.1}/rtmp-hls/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/README.md (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/conf/nginx.conf (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/players/dash.html (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/players/hls.html (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/players/rtmp.html (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/players/rtmp_hls.html (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/{ => ecosystem}/nginx/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list (100%) rename linux/{ => ecosystem}/nginx/1.17.10/main/.env (100%) rename linux/{ => ecosystem}/nginx/1.17.10/main/Dockerfile (100%) rename linux/{nginx/1.19.10 => ecosystem/nginx/1.17.10}/main/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.17.10/main/README.md (100%) rename linux/{ => ecosystem}/nginx/1.17.10/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.17.10/main/pre/ip2location-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.17.10/main/pre/luajit2-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.17.10/main/pre/nginx-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.17.10/main/pre/ngninx.pre.tar.gz (100%) rename linux/{ => ecosystem}/nginx/1.17.10/php/.env (100%) rename linux/{ => ecosystem}/nginx/1.17.10/php/Dockerfile (100%) rename linux/{nginx/1.19.10 => ecosystem/nginx/1.17.10}/php/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.17.10/php/README.md (100%) rename linux/{ => ecosystem}/nginx/1.17.10/php/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/.env (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/Dockerfile (100%) rename linux/{nginx/1.19.10 => ecosystem/nginx/1.17.10}/rtmp-hls/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/README.md (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/conf/nginx.conf (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/players/dash.html (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/players/hls.html (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/players/rtmp.html (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/players/rtmp_hls.html (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/{ => ecosystem}/nginx/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list (100%) rename linux/{ => ecosystem}/nginx/1.18.0/main/.env (100%) rename linux/{ => ecosystem}/nginx/1.18.0/main/Dockerfile (100%) rename linux/{nginx/1.20.1 => ecosystem/nginx/1.18.0}/main/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.18.0/main/README.md (100%) rename linux/{ => ecosystem}/nginx/1.18.0/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.18.0/main/pre/ip2location-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.18.0/main/pre/luajit2-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.18.0/main/pre/nginx-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.18.0/main/pre/ngninx.pre.tar.gz (100%) rename linux/{ => ecosystem}/nginx/1.18.0/php/.env (100%) rename linux/{ => ecosystem}/nginx/1.18.0/php/Dockerfile (100%) rename linux/{nginx/1.20.1 => ecosystem/nginx/1.18.0}/php/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.18.0/php/README.md (100%) rename linux/{ => ecosystem}/nginx/1.18.0/php/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/.env (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/Dockerfile (100%) rename linux/{nginx/1.20.1 => ecosystem/nginx/1.18.0}/rtmp-hls/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/README.md (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/conf/nginx.conf (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/players/dash.html (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/players/hls.html (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/players/rtmp.html (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/players/rtmp_hls.html (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/{ => ecosystem}/nginx/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list (100%) rename linux/{ => ecosystem}/nginx/1.19.10/main/.env (100%) rename linux/{ => ecosystem}/nginx/1.19.10/main/Dockerfile (100%) rename linux/{nginx/1.21.1 => ecosystem/nginx/1.19.10}/main/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.19.10/main/README.md (100%) rename linux/{ => ecosystem}/nginx/1.19.10/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.19.10/main/pre/ip2location-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.19.10/main/pre/luajit2-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.19.10/main/pre/nginx-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.19.10/main/pre/ngninx.pre.tar.gz (100%) rename linux/{ => ecosystem}/nginx/1.19.10/php/.env (100%) rename linux/{ => ecosystem}/nginx/1.19.10/php/Dockerfile (100%) rename linux/{nginx/1.21.1 => ecosystem/nginx/1.19.10}/php/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.19.10/php/README.md (100%) rename linux/{ => ecosystem}/nginx/1.19.10/php/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/.env (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/Dockerfile (100%) rename linux/{nginx/1.21.1 => ecosystem/nginx/1.19.10}/rtmp-hls/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/README.md (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/conf/nginx.conf (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/players/dash.html (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/players/hls.html (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/players/rtmp.html (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/players/rtmp_hls.html (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/{ => ecosystem}/nginx/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list (100%) rename linux/{ => ecosystem}/nginx/1.20.1/main/.env (100%) rename linux/{ => ecosystem}/nginx/1.20.1/main/Dockerfile (100%) rename linux/{nginx/latest => ecosystem/nginx/1.20.1}/main/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.20.1/main/README.md (100%) rename linux/{ => ecosystem}/nginx/1.20.1/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.20.1/main/pre/ip2location-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.20.1/main/pre/luajit2-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.20.1/main/pre/nginx-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.20.1/main/pre/ngninx.pre.tar.gz (100%) rename linux/{ => ecosystem}/nginx/1.20.1/php/.env (100%) rename linux/{ => ecosystem}/nginx/1.20.1/php/Dockerfile (100%) rename linux/{nginx/latest => ecosystem/nginx/1.20.1}/php/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.20.1/php/README.md (100%) rename linux/{ => ecosystem}/nginx/1.20.1/php/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/.env (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/Dockerfile (100%) rename linux/{nginx/latest => ecosystem/nginx/1.20.1}/rtmp-hls/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/README.md (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/conf/nginx.conf (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/players/dash.html (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/players/hls.html (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/players/rtmp.html (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/players/rtmp_hls.html (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/{ => ecosystem}/nginx/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list (100%) rename linux/{ => ecosystem}/nginx/1.21.1/main/.env (100%) rename linux/{ => ecosystem}/nginx/1.21.1/main/Dockerfile (100%) rename linux/{php/latest => ecosystem/nginx/1.21.1/main}/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.21.1/main/README.md (100%) rename linux/{ => ecosystem}/nginx/1.21.1/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.21.1/main/pre/ip2location-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.21.1/main/pre/luajit2-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.21.1/main/pre/nginx-description-pak (100%) rename linux/{ => ecosystem}/nginx/1.21.1/main/pre/ngninx.pre.tar.gz (100%) rename linux/{ => ecosystem}/nginx/1.21.1/php/.env (100%) rename linux/{ => ecosystem}/nginx/1.21.1/php/Dockerfile (100%) rename linux/{php/php7.2 => ecosystem/nginx/1.21.1/php}/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.21.1/php/README.md (100%) rename linux/{ => ecosystem}/nginx/1.21.1/php/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/.env (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/Dockerfile (100%) rename linux/{php/php7.3 => ecosystem/nginx/1.21.1/rtmp-hls}/Makefile (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/README.md (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/conf/nginx.conf (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/players/dash.html (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/players/hls.html (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/players/rtmp.html (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/players/rtmp_hls.html (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/{ => ecosystem}/nginx/1.21.1/rtmp-hls/sources.list.d/sources.stretch.list (100%) rename linux/{ => ecosystem}/nginx/latest/main/.env (100%) rename linux/{ => ecosystem}/nginx/latest/main/Dockerfile (100%) rename linux/{php/php7.4 => ecosystem/nginx/latest/main}/Makefile (100%) rename linux/{ => ecosystem}/nginx/latest/main/README.md (100%) rename linux/{ => ecosystem}/nginx/latest/main/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/latest/main/pre/ip2location-description-pak (100%) rename linux/{ => ecosystem}/nginx/latest/main/pre/luajit2-description-pak (100%) rename linux/{ => ecosystem}/nginx/latest/main/pre/nginx-description-pak (100%) rename linux/{ => ecosystem}/nginx/latest/main/pre/ngninx.pre.tar.gz (100%) rename linux/{ => ecosystem}/nginx/latest/php/.env (100%) rename linux/{ => ecosystem}/nginx/latest/php/Dockerfile (100%) rename linux/{postgres/10 => ecosystem/nginx/latest/php}/Makefile (100%) rename linux/{ => ecosystem}/nginx/latest/php/README.md (100%) rename linux/{ => ecosystem}/nginx/latest/php/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/.env (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/Dockerfile (100%) rename linux/{postgres/11 => ecosystem/nginx/latest/rtmp-hls}/Makefile (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/README.md (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/conf/nginx.conf (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/docker-compose.yml (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/players/dash.html (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/players/hls.html (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/players/rtmp.html (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/players/rtmp_hls.html (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/{ => ecosystem}/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list (100%) rename linux/{ => ecosystem}/nginx/links.txt (100%) rename linux/{ => ecosystem}/php/latest/Dockerfile (100%) rename linux/{postgres/12 => ecosystem/php/latest}/Makefile (100%) rename linux/{ => ecosystem}/php/latest/README.md (100%) rename linux/{ => ecosystem}/php/latest/docker-compose.yml (100%) rename linux/{ => ecosystem}/php/php7.2/Dockerfile (100%) rename linux/{postgres/13 => ecosystem/php/php7.2}/Makefile (100%) rename linux/{ => ecosystem}/php/php7.2/README.md (100%) rename linux/{ => ecosystem}/php/php7.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/php/php7.3/Dockerfile (100%) rename linux/{postgres/14 => ecosystem/php/php7.3}/Makefile (100%) rename linux/{ => ecosystem}/php/php7.3/README.md (100%) rename linux/{ => ecosystem}/php/php7.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/php/php7.4/Dockerfile (100%) rename linux/{postgres/8.2 => ecosystem/php/php7.4}/Makefile (100%) rename linux/{ => ecosystem}/php/php7.4/README.md (100%) rename linux/{ => ecosystem}/php/php7.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/10/Dockerfile (100%) rename linux/{postgres/8.3 => ecosystem/postgres/10}/Makefile (100%) rename linux/{ => ecosystem}/postgres/10/README.md (100%) rename linux/{ => ecosystem}/postgres/10/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/10/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/11/Dockerfile (100%) rename linux/{postgres/8.4 => ecosystem/postgres/11}/Makefile (100%) rename linux/{ => ecosystem}/postgres/11/README.md (100%) rename linux/{ => ecosystem}/postgres/11/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/11/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/12/Dockerfile (100%) rename linux/{postgres/9.0 => ecosystem/postgres/12}/Makefile (100%) rename linux/{ => ecosystem}/postgres/12/README.md (100%) rename linux/{ => ecosystem}/postgres/12/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/12/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/13/Dockerfile (100%) rename linux/{postgres/9.1 => ecosystem/postgres/13}/Makefile (100%) rename linux/{ => ecosystem}/postgres/13/README.md (100%) rename linux/{ => ecosystem}/postgres/13/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/13/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/14/Dockerfile (100%) rename linux/{postgres/9.2 => ecosystem/postgres/14}/Makefile (100%) rename linux/{ => ecosystem}/postgres/14/README.md (100%) rename linux/{ => ecosystem}/postgres/14/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/14/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/8.2/Dockerfile (100%) rename linux/{postgres/9.3 => ecosystem/postgres/8.2}/Makefile (100%) rename linux/{ => ecosystem}/postgres/8.2/README.md (100%) rename linux/{ => ecosystem}/postgres/8.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/8.2/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/8.3/Dockerfile (100%) rename linux/{postgres/9.4 => ecosystem/postgres/8.3}/Makefile (100%) rename linux/{ => ecosystem}/postgres/8.3/README.md (100%) rename linux/{ => ecosystem}/postgres/8.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/8.3/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/8.4/Dockerfile (100%) rename linux/{postgres/9.5 => ecosystem/postgres/8.4}/Makefile (100%) rename linux/{ => ecosystem}/postgres/8.4/README.md (100%) rename linux/{ => ecosystem}/postgres/8.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/8.4/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/9.0/Dockerfile (100%) rename linux/{postgres/9.6 => ecosystem/postgres/9.0}/Makefile (100%) rename linux/{ => ecosystem}/postgres/9.0/README.md (100%) rename linux/{ => ecosystem}/postgres/9.0/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/9.0/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/9.1/Dockerfile (100%) rename linux/{postgres/latest => ecosystem/postgres/9.1}/Makefile (100%) rename linux/{ => ecosystem}/postgres/9.1/README.md (100%) rename linux/{ => ecosystem}/postgres/9.1/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/9.1/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/9.2/Dockerfile (100%) rename linux/{qbittorrent/latest => ecosystem/postgres/9.2}/Makefile (100%) rename linux/{ => ecosystem}/postgres/9.2/README.md (100%) rename linux/{ => ecosystem}/postgres/9.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/9.2/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/9.3/Dockerfile (100%) rename linux/{qbittorrent/stable => ecosystem/postgres/9.3}/Makefile (100%) rename linux/{ => ecosystem}/postgres/9.3/README.md (100%) rename linux/{ => ecosystem}/postgres/9.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/9.3/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/9.4/Dockerfile (100%) rename linux/{teamcity/agent/amxx-sdk => ecosystem/postgres/9.4}/Makefile (100%) rename linux/{ => ecosystem}/postgres/9.4/README.md (100%) rename linux/{ => ecosystem}/postgres/9.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/9.4/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/9.5/Dockerfile (100%) rename linux/{teamcity/agent/android-sdk => ecosystem/postgres/9.5}/Makefile (100%) rename linux/{ => ecosystem}/postgres/9.5/README.md (100%) rename linux/{ => ecosystem}/postgres/9.5/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/9.5/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/9.6/Dockerfile (100%) rename linux/{teamcity/agent/atlassian-sdk => ecosystem/postgres/9.6}/Makefile (100%) rename linux/{ => ecosystem}/postgres/9.6/README.md (100%) rename linux/{ => ecosystem}/postgres/9.6/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/9.6/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/postgres/AUTHORS (100%) rename linux/{ => ecosystem}/postgres/LICENSE (100%) rename linux/{ => ecosystem}/postgres/README.md (100%) rename linux/{ => ecosystem}/postgres/latest/Dockerfile (100%) rename linux/{teamcity/agent/dotnet-sdk => ecosystem/postgres/latest}/Makefile (100%) rename linux/{ => ecosystem}/postgres/latest/README.md (100%) rename linux/{ => ecosystem}/postgres/latest/docker-compose.yml (100%) rename linux/{ => ecosystem}/postgres/latest/docker-entrypoint.sh (100%) rename linux/{ => ecosystem}/qbittorrent/README.md (100%) rename linux/{ => ecosystem}/qbittorrent/latest/Dockerfile (100%) rename linux/{teamcity/agent => ecosystem/qbittorrent}/latest/Makefile (100%) rename linux/{ => ecosystem}/qbittorrent/latest/Makefile.unstable (100%) rename linux/{ => ecosystem}/qbittorrent/latest/docker-compose.example.yml (100%) rename linux/{ => ecosystem}/qbittorrent/latest/docker-compose.yml (100%) rename linux/{ => ecosystem}/qbittorrent/latest/entrypoint.sh (100%) rename linux/{ => ecosystem}/qbittorrent/latest/qbittorrent-unstable.list (100%) rename linux/{ => ecosystem}/qbittorrent/qbittorrent-icon.png (100%) rename linux/{ => ecosystem}/qbittorrent/stable/Dockerfile (100%) rename linux/{teamcity/agent/node12 => ecosystem/qbittorrent/stable}/Makefile (100%) rename linux/{ => ecosystem}/qbittorrent/stable/docker-compose.yml (100%) rename linux/{ => ecosystem}/qbittorrent/stable/entrypoint.sh (100%) rename linux/{ => ecosystem}/qbittorrent/stable/qbittorrent-stable.list (100%) create mode 100644 linux/ecosystem/teamcity/README.md rename linux/{ => ecosystem}/teamcity/agent/amxx-sdk/Dockerfile (100%) rename linux/{teamcity/agent/node14 => ecosystem/teamcity/agent/amxx-sdk}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/amxx-sdk/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/amxx-sdk/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/android-sdk/Dockerfile (100%) rename linux/{teamcity/agent/node15 => ecosystem/teamcity/agent/android-sdk}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/android-sdk/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/android-sdk/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/atlassian-sdk/Dockerfile (100%) rename linux/{teamcity/agent/node16 => ecosystem/teamcity/agent/atlassian-sdk}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/atlassian-sdk/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/atlassian-sdk/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/dotnet-sdk/Dockerfile (100%) rename linux/{teamcity/agent/php7.2 => ecosystem/teamcity/agent/dotnet-sdk}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/dotnet-sdk/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/dotnet-sdk/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/latest/Dockerfile (100%) rename linux/{teamcity/agent/php7.3 => ecosystem/teamcity/agent/latest}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/latest/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/latest/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/latest/run-agent.sh (100%) rename linux/{ => ecosystem}/teamcity/agent/latest/run-docker.sh (100%) rename linux/{ => ecosystem}/teamcity/agent/latest/run-services.sh (100%) create mode 100644 linux/ecosystem/teamcity/agent/latest/sources.sid.list rename linux/{ => ecosystem}/teamcity/agent/node12/Dockerfile (100%) rename linux/{teamcity/agent/php7.4 => ecosystem/teamcity/agent/node12}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/node12/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/node12/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/node14/Dockerfile (100%) rename linux/{teamcity/agent/steam-sdk => ecosystem/teamcity/agent/node14}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/node14/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/node14/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/node15/Dockerfile (100%) rename linux/{teamcity/server => ecosystem/teamcity/agent/node15}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/node15/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/node15/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/node16/Dockerfile (100%) rename linux/{testrail/latest => ecosystem/teamcity/agent/node16}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/node16/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/node16/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.2/Dockerfile (100%) rename linux/{vk2discord/latest => ecosystem/teamcity/agent/php7.2}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.2/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.2/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.2/run-agent.sh (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.2/run-services.sh (100%) rename linux/{teamcity/agent/latest => ecosystem/teamcity/agent/php7.2}/sources.sid.list (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.3/Dockerfile (100%) rename linux/{zabbix/agent => ecosystem/teamcity/agent/php7.3}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.3/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.3/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.3/run-agent.sh (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.3/run-services.sh (100%) rename linux/{teamcity/agent/php7.2 => ecosystem/teamcity/agent/php7.3}/sources.sid.list (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.4/Dockerfile (100%) rename linux/{zabbix/java-gateway => ecosystem/teamcity/agent/php7.4}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.4/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.4/docker-compose.yml (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.4/run-agent.sh (100%) rename linux/{ => ecosystem}/teamcity/agent/php7.4/run-services.sh (100%) rename linux/{teamcity/agent/php7.3 => ecosystem/teamcity/agent/php7.4}/sources.sid.list (100%) rename linux/{ => ecosystem}/teamcity/agent/steam-sdk/Dockerfile (100%) rename linux/{zabbix/proxy => ecosystem/teamcity/agent/steam-sdk}/Makefile (100%) rename linux/{ => ecosystem}/teamcity/agent/steam-sdk/README.md (100%) rename linux/{ => ecosystem}/teamcity/agent/steam-sdk/docker-compose.yml (100%) rename linux/{ => ecosystem}/testrail/latest/Dockerfile (100%) rename linux/{zabbix/server => ecosystem/testrail/latest}/Makefile (100%) rename linux/{ => ecosystem}/testrail/latest/README.md (100%) rename linux/{ => ecosystem}/testrail/latest/apache_testrail.conf (100%) rename linux/{ => ecosystem}/testrail/latest/docker-compose.yml (100%) rename linux/{ => ecosystem}/testrail/latest/run.sh (100%) rename linux/{ => ecosystem}/vk2discord/latest/Dockerfile (100%) rename linux/{zabbix/web => ecosystem/vk2discord/latest}/Makefile (100%) rename linux/{ => ecosystem}/vk2discord/latest/README.md (100%) rename linux/{ => ecosystem}/vk2discord/latest/docker-compose.yml (100%) delete mode 100644 linux/epicmorg/edge/main/sources.list delete mode 100644 linux/epicmorg/prod/main/sources.list delete mode 100644 linux/nextcloud/14/sources.list delete mode 100644 linux/nextcloud/15/sources.list delete mode 100644 linux/nextcloud/16/sources.list delete mode 100644 linux/nextcloud/17/sources.list delete mode 100644 linux/nextcloud/18/sources.list delete mode 100644 linux/nextcloud/19/sources.list delete mode 100644 linux/nextcloud/20/sources.list delete mode 100644 linux/nextcloud/21/sources.list delete mode 100644 linux/nextcloud/22/sources.list delete mode 100644 linux/nextcloud/latest/sources.list delete mode 100644 linux/teamcity/agent/php7.4/sources.sid.list diff --git a/bin/make-all-epicmorg-based.sh b/bin/make-all-epicmorg-based.sh index 5f574349c..063ee7d42 100755 --- a/bin/make-all-epicmorg-based.sh +++ b/bin/make-all-epicmorg-based.sh @@ -2,60 +2,78 @@ export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" clear -cd ${SCRIPTPATH}/../linux/epicmorg/prod/main && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/prod/jdk6 && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/prod/jdk7 && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/prod/jdk8 && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/prod/jdk11 && pwd && make - -cd ${SCRIPTPATH}/../linux/epicmorg/edge/main && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/edge/jdk6 && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/edge/jdk7 && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/edge/jdk8 && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/edge/jdk11 && pwd && make - -cd ${SCRIPTPATH}/../linux/epicmorg/devel/main && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/devel/jdk6 && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/devel/jdk7 && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/devel/jdk8 && pwd && make -cd ${SCRIPTPATH}/../linux/epicmorg/devel/jdk11 && pwd && make - -cd ${SCRIPTPATH}/../linux/php/latest && pwd && make -cd ${SCRIPTPATH}/../linux/php/php7.2 && pwd && make -cd ${SCRIPTPATH}/../linux/php/php7.3 && pwd && make -cd ${SCRIPTPATH}/../linux/php/php7.4 && pwd && make - -cd ${SCRIPTPATH}/../linux/apache2/latest && pwd && make -cd ${SCRIPTPATH}/../linux/apache2/php7.2 && pwd && make -cd ${SCRIPTPATH}/../linux/apache2/php7.3 && pwd && make -cd ${SCRIPTPATH}/../linux/apache2/php7.4 && pwd && make - -cd ${SCRIPTPATH}/../linux/testrail/latest && pwd && make - -cd ${SCRIPTPATH}/../linux/nginx/latest/main && pwd && make -cd ${SCRIPTPATH}/../linux/nginx/latest/php && pwd && make -cd ${SCRIPTPATH}/../linux/nginx/latest/rtmp-hls && pwd && make - -cd ${SCRIPTPATH}/../linux/postgres/latest && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/8.2 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/8.3 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/8.4 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/9.0 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/9.1 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/9.2 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/9.3 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/9.4 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/9.5 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/9.6 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/10 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/11 && pwd && make -cd ${SCRIPTPATH}/../linux/postgres/12 && pwd && make - -cd ${SCRIPTPATH}/../linux/qbittorrent/latest && pwd && make -cd ${SCRIPTPATH}/../linux/qbittorrent/stable && pwd && make - -cd ${SCRIPTPATH}/../linux/vk2discord/latest && pwd && make - -cd ${SCRIPTPATH}/../linux/teamcity/agent && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/main && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk6 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk7 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk8 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk11 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk16 && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/main && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk6 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk7 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk8 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk11 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk16 && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/main && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk6 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk7 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk8 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk11 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk16 && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/php/latest && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/php/php7.2 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/php/php7.3 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/php/php7.4 && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/apache2/latest && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/apache2/php7.2 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/apache2/php7.3 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/apache2/php7.4 && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/testrail/latest && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/latest && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/8.2 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/8.3 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/8.4 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.0 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.1 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.2 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.3 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.4 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.5 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.6 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/10 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/11 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/12 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/13 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/postgres/14 && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/qbittorrent/latest && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/qbittorrent/stable && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/vk2discord/latest && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/latest && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/amxx-sdk && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/android-sdk && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/atlassian-sdk && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/dotnet-sdk && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/node12 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/node14 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/node15 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/node16 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/php7.2 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/php7.3 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/php7.4 && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/steam-sdk && pwd && make + +cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/main && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/php && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/rtmp-hls && pwd && make exit 0 diff --git a/bin/make-all-third-party.sh b/bin/make-all-third-party.sh index 0406d77e7..5f2728816 100755 --- a/bin/make-all-third-party.sh +++ b/bin/make-all-third-party.sh @@ -2,27 +2,27 @@ export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" clear -cd ${SCRIPTPATH}/../linux/zabbix/agent && pwd && make -cd ${SCRIPTPATH}/../linux/zabbix/java-gateway && pwd && make -cd ${SCRIPTPATH}/../linux/zabbix/proxy && pwd && make -cd ${SCRIPTPATH}/../linux/zabbix/server && pwd && make -cd ${SCRIPTPATH}/../linux/zabbix/web && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/zabbix/agent && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/zabbix/java-gateway && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/zabbix/proxy && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/zabbix/server && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/zabbix/web && pwd && make exit 1 -cd ${SCRIPTPATH}/../linux/mattermost/latest && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/latest && pwd && make -cd ${SCRIPTPATH}/../linux/teamcity/server && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/mattermost/latest && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/latest && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/teamcity/server && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/14 && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/15 && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/16 && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/17 && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/18 && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/19 && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/20 && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/21 && pwd && make -cd ${SCRIPTPATH}/../linux/nextcloud/22 && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/14 && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/15 && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/16 && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/17 && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/18 && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/19 && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/20 && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/21 && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/nextcloud/22 && pwd && make exit 0 diff --git a/linux/mattermost/latest/Dockerfile b/linux/advanced/mattermost/latest/Dockerfile similarity index 100% rename from linux/mattermost/latest/Dockerfile rename to linux/advanced/mattermost/latest/Dockerfile diff --git a/linux/apache2/latest/Makefile b/linux/advanced/mattermost/latest/Makefile similarity index 100% rename from linux/apache2/latest/Makefile rename to linux/advanced/mattermost/latest/Makefile diff --git a/linux/mattermost/latest/docker-compose.yml b/linux/advanced/mattermost/latest/docker-compose.yml similarity index 100% rename from linux/mattermost/latest/docker-compose.yml rename to linux/advanced/mattermost/latest/docker-compose.yml diff --git a/linux/mattermost/latest/edit.py b/linux/advanced/mattermost/latest/edit.py similarity index 100% rename from linux/mattermost/latest/edit.py rename to linux/advanced/mattermost/latest/edit.py diff --git a/linux/nextcloud/14/Dockerfile b/linux/advanced/nextcloud/14/Dockerfile similarity index 100% rename from linux/nextcloud/14/Dockerfile rename to linux/advanced/nextcloud/14/Dockerfile diff --git a/linux/apache2/php7.2/Makefile b/linux/advanced/nextcloud/14/Makefile similarity index 100% rename from linux/apache2/php7.2/Makefile rename to linux/advanced/nextcloud/14/Makefile diff --git a/linux/nextcloud/14/README.md b/linux/advanced/nextcloud/14/README.md similarity index 100% rename from linux/nextcloud/14/README.md rename to linux/advanced/nextcloud/14/README.md diff --git a/linux/nextcloud/14/Streamer.php b/linux/advanced/nextcloud/14/Streamer.php similarity index 100% rename from linux/nextcloud/14/Streamer.php rename to linux/advanced/nextcloud/14/Streamer.php diff --git a/linux/nextcloud/14/docker-compose.yml b/linux/advanced/nextcloud/14/docker-compose.yml similarity index 100% rename from linux/nextcloud/14/docker-compose.yml rename to linux/advanced/nextcloud/14/docker-compose.yml diff --git a/linux/nextcloud/14/smb.conf b/linux/advanced/nextcloud/14/smb.conf similarity index 100% rename from linux/nextcloud/14/smb.conf rename to linux/advanced/nextcloud/14/smb.conf diff --git a/linux/advanced/nextcloud/14/sources.list b/linux/advanced/nextcloud/14/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/14/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/nextcloud/15/Dockerfile b/linux/advanced/nextcloud/15/Dockerfile similarity index 100% rename from linux/nextcloud/15/Dockerfile rename to linux/advanced/nextcloud/15/Dockerfile diff --git a/linux/apache2/php7.3/Makefile b/linux/advanced/nextcloud/15/Makefile similarity index 100% rename from linux/apache2/php7.3/Makefile rename to linux/advanced/nextcloud/15/Makefile diff --git a/linux/nextcloud/15/README.md b/linux/advanced/nextcloud/15/README.md similarity index 100% rename from linux/nextcloud/15/README.md rename to linux/advanced/nextcloud/15/README.md diff --git a/linux/nextcloud/15/Streamer.php b/linux/advanced/nextcloud/15/Streamer.php similarity index 100% rename from linux/nextcloud/15/Streamer.php rename to linux/advanced/nextcloud/15/Streamer.php diff --git a/linux/nextcloud/15/docker-compose.yml b/linux/advanced/nextcloud/15/docker-compose.yml similarity index 100% rename from linux/nextcloud/15/docker-compose.yml rename to linux/advanced/nextcloud/15/docker-compose.yml diff --git a/linux/nextcloud/15/smb.conf b/linux/advanced/nextcloud/15/smb.conf similarity index 100% rename from linux/nextcloud/15/smb.conf rename to linux/advanced/nextcloud/15/smb.conf diff --git a/linux/advanced/nextcloud/15/sources.list b/linux/advanced/nextcloud/15/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/15/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/nextcloud/16/Dockerfile b/linux/advanced/nextcloud/16/Dockerfile similarity index 100% rename from linux/nextcloud/16/Dockerfile rename to linux/advanced/nextcloud/16/Dockerfile diff --git a/linux/apache2/php7.4/Makefile b/linux/advanced/nextcloud/16/Makefile similarity index 100% rename from linux/apache2/php7.4/Makefile rename to linux/advanced/nextcloud/16/Makefile diff --git a/linux/nextcloud/16/README.md b/linux/advanced/nextcloud/16/README.md similarity index 100% rename from linux/nextcloud/16/README.md rename to linux/advanced/nextcloud/16/README.md diff --git a/linux/nextcloud/16/Streamer.php b/linux/advanced/nextcloud/16/Streamer.php similarity index 100% rename from linux/nextcloud/16/Streamer.php rename to linux/advanced/nextcloud/16/Streamer.php diff --git a/linux/nextcloud/16/docker-compose.yml b/linux/advanced/nextcloud/16/docker-compose.yml similarity index 100% rename from linux/nextcloud/16/docker-compose.yml rename to linux/advanced/nextcloud/16/docker-compose.yml diff --git a/linux/nextcloud/16/smb.conf b/linux/advanced/nextcloud/16/smb.conf similarity index 100% rename from linux/nextcloud/16/smb.conf rename to linux/advanced/nextcloud/16/smb.conf diff --git a/linux/advanced/nextcloud/16/sources.list b/linux/advanced/nextcloud/16/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/16/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/nextcloud/17/Dockerfile b/linux/advanced/nextcloud/17/Dockerfile similarity index 100% rename from linux/nextcloud/17/Dockerfile rename to linux/advanced/nextcloud/17/Dockerfile diff --git a/linux/atlassian/confluence/6/6.0.1/Makefile b/linux/advanced/nextcloud/17/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.0.1/Makefile rename to linux/advanced/nextcloud/17/Makefile diff --git a/linux/nextcloud/17/README.md b/linux/advanced/nextcloud/17/README.md similarity index 100% rename from linux/nextcloud/17/README.md rename to linux/advanced/nextcloud/17/README.md diff --git a/linux/nextcloud/17/Streamer.php b/linux/advanced/nextcloud/17/Streamer.php similarity index 100% rename from linux/nextcloud/17/Streamer.php rename to linux/advanced/nextcloud/17/Streamer.php diff --git a/linux/nextcloud/17/docker-compose.yml b/linux/advanced/nextcloud/17/docker-compose.yml similarity index 100% rename from linux/nextcloud/17/docker-compose.yml rename to linux/advanced/nextcloud/17/docker-compose.yml diff --git a/linux/nextcloud/17/smb.conf b/linux/advanced/nextcloud/17/smb.conf similarity index 100% rename from linux/nextcloud/17/smb.conf rename to linux/advanced/nextcloud/17/smb.conf diff --git a/linux/advanced/nextcloud/17/sources.list b/linux/advanced/nextcloud/17/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/17/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/nextcloud/18/Dockerfile b/linux/advanced/nextcloud/18/Dockerfile similarity index 100% rename from linux/nextcloud/18/Dockerfile rename to linux/advanced/nextcloud/18/Dockerfile diff --git a/linux/atlassian/confluence/6/6.0.2/Makefile b/linux/advanced/nextcloud/18/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.0.2/Makefile rename to linux/advanced/nextcloud/18/Makefile diff --git a/linux/nextcloud/18/README.md b/linux/advanced/nextcloud/18/README.md similarity index 100% rename from linux/nextcloud/18/README.md rename to linux/advanced/nextcloud/18/README.md diff --git a/linux/nextcloud/18/Streamer.php b/linux/advanced/nextcloud/18/Streamer.php similarity index 100% rename from linux/nextcloud/18/Streamer.php rename to linux/advanced/nextcloud/18/Streamer.php diff --git a/linux/nextcloud/18/docker-compose.yml b/linux/advanced/nextcloud/18/docker-compose.yml similarity index 100% rename from linux/nextcloud/18/docker-compose.yml rename to linux/advanced/nextcloud/18/docker-compose.yml diff --git a/linux/nextcloud/18/smb.conf b/linux/advanced/nextcloud/18/smb.conf similarity index 100% rename from linux/nextcloud/18/smb.conf rename to linux/advanced/nextcloud/18/smb.conf diff --git a/linux/advanced/nextcloud/18/sources.list b/linux/advanced/nextcloud/18/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/18/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/nextcloud/19/Dockerfile b/linux/advanced/nextcloud/19/Dockerfile similarity index 100% rename from linux/nextcloud/19/Dockerfile rename to linux/advanced/nextcloud/19/Dockerfile diff --git a/linux/atlassian/confluence/6/6.0.3/Makefile b/linux/advanced/nextcloud/19/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.0.3/Makefile rename to linux/advanced/nextcloud/19/Makefile diff --git a/linux/nextcloud/19/README.md b/linux/advanced/nextcloud/19/README.md similarity index 100% rename from linux/nextcloud/19/README.md rename to linux/advanced/nextcloud/19/README.md diff --git a/linux/nextcloud/19/Streamer.php b/linux/advanced/nextcloud/19/Streamer.php similarity index 100% rename from linux/nextcloud/19/Streamer.php rename to linux/advanced/nextcloud/19/Streamer.php diff --git a/linux/nextcloud/19/docker-compose.yml b/linux/advanced/nextcloud/19/docker-compose.yml similarity index 100% rename from linux/nextcloud/19/docker-compose.yml rename to linux/advanced/nextcloud/19/docker-compose.yml diff --git a/linux/nextcloud/19/smb.conf b/linux/advanced/nextcloud/19/smb.conf similarity index 100% rename from linux/nextcloud/19/smb.conf rename to linux/advanced/nextcloud/19/smb.conf diff --git a/linux/advanced/nextcloud/19/sources.list b/linux/advanced/nextcloud/19/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/19/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/nextcloud/20/Dockerfile b/linux/advanced/nextcloud/20/Dockerfile similarity index 100% rename from linux/nextcloud/20/Dockerfile rename to linux/advanced/nextcloud/20/Dockerfile diff --git a/linux/atlassian/confluence/6/6.0.4/Makefile b/linux/advanced/nextcloud/20/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.0.4/Makefile rename to linux/advanced/nextcloud/20/Makefile diff --git a/linux/nextcloud/20/README.md b/linux/advanced/nextcloud/20/README.md similarity index 100% rename from linux/nextcloud/20/README.md rename to linux/advanced/nextcloud/20/README.md diff --git a/linux/nextcloud/20/Streamer.php b/linux/advanced/nextcloud/20/Streamer.php similarity index 100% rename from linux/nextcloud/20/Streamer.php rename to linux/advanced/nextcloud/20/Streamer.php diff --git a/linux/nextcloud/20/docker-compose.yml b/linux/advanced/nextcloud/20/docker-compose.yml similarity index 100% rename from linux/nextcloud/20/docker-compose.yml rename to linux/advanced/nextcloud/20/docker-compose.yml diff --git a/linux/nextcloud/20/smb.conf b/linux/advanced/nextcloud/20/smb.conf similarity index 100% rename from linux/nextcloud/20/smb.conf rename to linux/advanced/nextcloud/20/smb.conf diff --git a/linux/advanced/nextcloud/20/sources.list b/linux/advanced/nextcloud/20/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/20/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/nextcloud/21/Dockerfile b/linux/advanced/nextcloud/21/Dockerfile similarity index 100% rename from linux/nextcloud/21/Dockerfile rename to linux/advanced/nextcloud/21/Dockerfile diff --git a/linux/atlassian/confluence/6/6.0.5/Makefile b/linux/advanced/nextcloud/21/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.0.5/Makefile rename to linux/advanced/nextcloud/21/Makefile diff --git a/linux/nextcloud/21/README.md b/linux/advanced/nextcloud/21/README.md similarity index 100% rename from linux/nextcloud/21/README.md rename to linux/advanced/nextcloud/21/README.md diff --git a/linux/nextcloud/21/Streamer.php b/linux/advanced/nextcloud/21/Streamer.php similarity index 100% rename from linux/nextcloud/21/Streamer.php rename to linux/advanced/nextcloud/21/Streamer.php diff --git a/linux/nextcloud/21/docker-compose.yml b/linux/advanced/nextcloud/21/docker-compose.yml similarity index 100% rename from linux/nextcloud/21/docker-compose.yml rename to linux/advanced/nextcloud/21/docker-compose.yml diff --git a/linux/nextcloud/21/smb.conf b/linux/advanced/nextcloud/21/smb.conf similarity index 100% rename from linux/nextcloud/21/smb.conf rename to linux/advanced/nextcloud/21/smb.conf diff --git a/linux/advanced/nextcloud/21/sources.list b/linux/advanced/nextcloud/21/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/21/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/nextcloud/22/Dockerfile b/linux/advanced/nextcloud/22/Dockerfile similarity index 100% rename from linux/nextcloud/22/Dockerfile rename to linux/advanced/nextcloud/22/Dockerfile diff --git a/linux/atlassian/confluence/6/6.0.6/Makefile b/linux/advanced/nextcloud/22/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.0.6/Makefile rename to linux/advanced/nextcloud/22/Makefile diff --git a/linux/nextcloud/22/README.md b/linux/advanced/nextcloud/22/README.md similarity index 100% rename from linux/nextcloud/22/README.md rename to linux/advanced/nextcloud/22/README.md diff --git a/linux/nextcloud/22/Streamer.php b/linux/advanced/nextcloud/22/Streamer.php similarity index 100% rename from linux/nextcloud/22/Streamer.php rename to linux/advanced/nextcloud/22/Streamer.php diff --git a/linux/nextcloud/22/docker-compose.yml b/linux/advanced/nextcloud/22/docker-compose.yml similarity index 100% rename from linux/nextcloud/22/docker-compose.yml rename to linux/advanced/nextcloud/22/docker-compose.yml diff --git a/linux/nextcloud/22/smb.conf b/linux/advanced/nextcloud/22/smb.conf similarity index 100% rename from linux/nextcloud/22/smb.conf rename to linux/advanced/nextcloud/22/smb.conf diff --git a/linux/advanced/nextcloud/22/sources.list b/linux/advanced/nextcloud/22/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/22/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/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/nextcloud/latest/Dockerfile b/linux/advanced/nextcloud/latest/Dockerfile similarity index 100% rename from linux/nextcloud/latest/Dockerfile rename to linux/advanced/nextcloud/latest/Dockerfile diff --git a/linux/atlassian/confluence/6/6.0.7/Makefile b/linux/advanced/nextcloud/latest/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.0.7/Makefile rename to linux/advanced/nextcloud/latest/Makefile diff --git a/linux/nextcloud/latest/README.md b/linux/advanced/nextcloud/latest/README.md similarity index 100% rename from linux/nextcloud/latest/README.md rename to linux/advanced/nextcloud/latest/README.md diff --git a/linux/nextcloud/latest/Streamer.php b/linux/advanced/nextcloud/latest/Streamer.php similarity index 100% rename from linux/nextcloud/latest/Streamer.php rename to linux/advanced/nextcloud/latest/Streamer.php diff --git a/linux/nextcloud/latest/docker-compose.yml b/linux/advanced/nextcloud/latest/docker-compose.yml similarity index 100% rename from linux/nextcloud/latest/docker-compose.yml rename to linux/advanced/nextcloud/latest/docker-compose.yml diff --git a/linux/nextcloud/latest/smb.conf b/linux/advanced/nextcloud/latest/smb.conf similarity index 100% rename from linux/nextcloud/latest/smb.conf rename to linux/advanced/nextcloud/latest/smb.conf diff --git a/linux/advanced/nextcloud/latest/sources.list b/linux/advanced/nextcloud/latest/sources.list new file mode 100644 index 000000000..412c35d1a --- /dev/null +++ b/linux/advanced/nextcloud/latest/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/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/atlassian/confluence/6/6.1.0/Makefile b/linux/advanced/teamcity/server/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.1.0/Makefile rename to linux/advanced/teamcity/server/Makefile 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/teamcity/server/docker-compose.yml b/linux/advanced/teamcity/server/docker-compose.yml similarity index 100% rename from linux/teamcity/server/docker-compose.yml rename to linux/advanced/teamcity/server/docker-compose.yml 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/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/atlassian/confluence/6/6.1.1/Makefile b/linux/advanced/zabbix/agent/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.1.1/Makefile rename to linux/advanced/zabbix/agent/Makefile 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/zabbix/agent/docker-compose.yml b/linux/advanced/zabbix/agent/docker-compose.yml similarity index 100% rename from linux/zabbix/agent/docker-compose.yml rename to linux/advanced/zabbix/agent/docker-compose.yml 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/atlassian/confluence/6/6.1.2/Makefile b/linux/advanced/zabbix/java-gateway/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.1.2/Makefile rename to linux/advanced/zabbix/java-gateway/Makefile 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/zabbix/java-gateway/docker-compose.yml b/linux/advanced/zabbix/java-gateway/docker-compose.yml similarity index 100% rename from linux/zabbix/java-gateway/docker-compose.yml rename to linux/advanced/zabbix/java-gateway/docker-compose.yml 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/atlassian/confluence/6/6.1.3/Makefile b/linux/advanced/zabbix/proxy/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.1.3/Makefile rename to linux/advanced/zabbix/proxy/Makefile 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/zabbix/proxy/docker-compose.yml b/linux/advanced/zabbix/proxy/docker-compose.yml similarity index 100% rename from linux/zabbix/proxy/docker-compose.yml rename to linux/advanced/zabbix/proxy/docker-compose.yml 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/atlassian/confluence/6/6.1.4/Makefile b/linux/advanced/zabbix/server/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.1.4/Makefile rename to linux/advanced/zabbix/server/Makefile 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/zabbix/server/docker-compose.yml b/linux/advanced/zabbix/server/docker-compose.yml similarity index 100% rename from linux/zabbix/server/docker-compose.yml rename to linux/advanced/zabbix/server/docker-compose.yml 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/atlassian/confluence/6/6.10.0/Makefile b/linux/advanced/zabbix/web/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.10.0/Makefile rename to linux/advanced/zabbix/web/Makefile 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/zabbix/web/docker-compose.yml b/linux/advanced/zabbix/web/docker-compose.yml similarity index 100% rename from linux/zabbix/web/docker-compose.yml rename to linux/advanced/zabbix/web/docker-compose.yml 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/ecosystem/apache2/latest/Dockerfile similarity index 100% rename from linux/apache2/latest/Dockerfile rename to linux/ecosystem/apache2/latest/Dockerfile diff --git a/linux/atlassian/confluence/6/6.10.1/Makefile b/linux/ecosystem/apache2/latest/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.10.1/Makefile rename to linux/ecosystem/apache2/latest/Makefile 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/apache2/latest/docker-compose.yml b/linux/ecosystem/apache2/latest/docker-compose.yml similarity index 100% rename from linux/apache2/latest/docker-compose.yml rename to linux/ecosystem/apache2/latest/docker-compose.yml 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/apache2/php7.2/Dockerfile b/linux/ecosystem/apache2/php7.2/Dockerfile similarity index 100% rename from linux/apache2/php7.2/Dockerfile rename to linux/ecosystem/apache2/php7.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.10.2/Makefile b/linux/ecosystem/apache2/php7.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.10.2/Makefile rename to linux/ecosystem/apache2/php7.2/Makefile 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/apache2/php7.2/docker-compose.yml b/linux/ecosystem/apache2/php7.2/docker-compose.yml similarity index 100% rename from linux/apache2/php7.2/docker-compose.yml rename to linux/ecosystem/apache2/php7.2/docker-compose.yml 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/apache2/php7.3/Dockerfile b/linux/ecosystem/apache2/php7.3/Dockerfile similarity index 100% rename from linux/apache2/php7.3/Dockerfile rename to linux/ecosystem/apache2/php7.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.10.3/Makefile b/linux/ecosystem/apache2/php7.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.10.3/Makefile rename to linux/ecosystem/apache2/php7.3/Makefile 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/apache2/php7.3/docker-compose.yml b/linux/ecosystem/apache2/php7.3/docker-compose.yml similarity index 100% rename from linux/apache2/php7.3/docker-compose.yml rename to linux/ecosystem/apache2/php7.3/docker-compose.yml 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/apache2/php7.4/Dockerfile b/linux/ecosystem/apache2/php7.4/Dockerfile similarity index 100% rename from linux/apache2/php7.4/Dockerfile rename to linux/ecosystem/apache2/php7.4/Dockerfile diff --git a/linux/atlassian/confluence/6/6.11.0/Makefile b/linux/ecosystem/apache2/php7.4/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.11.0/Makefile rename to linux/ecosystem/apache2/php7.4/Makefile 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/apache2/php7.4/docker-compose.yml b/linux/ecosystem/apache2/php7.4/docker-compose.yml similarity index 100% rename from linux/apache2/php7.4/docker-compose.yml rename to linux/ecosystem/apache2/php7.4/docker-compose.yml 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/atlassian/bitbucket/latest/Dockerfile b/linux/ecosystem/atlassian/bitbucket/latest/Dockerfile similarity index 100% rename from linux/atlassian/bitbucket/latest/Dockerfile rename to linux/ecosystem/atlassian/bitbucket/latest/Dockerfile 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/atlassian/bitbucket/latest/Makefile b/linux/ecosystem/atlassian/bitbucket/latest/Makefile similarity index 100% rename from linux/atlassian/bitbucket/latest/Makefile rename to linux/ecosystem/atlassian/bitbucket/latest/Makefile 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/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/atlassian/confluence/6/6.0.1/.env b/linux/ecosystem/atlassian/confluence/6/6.0.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.0.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.0.1/.env diff --git a/linux/atlassian/confluence/6/6.0.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.0.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.0.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.11.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.11.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.0.1/Makefile diff --git a/linux/atlassian/confluence/6/6.0.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.0.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.0.1/docker-compose.yml 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/atlassian/confluence/6/6.0.2/.env b/linux/ecosystem/atlassian/confluence/6/6.0.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.0.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.0.2/.env diff --git a/linux/atlassian/confluence/6/6.0.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.0.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.0.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.11.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.11.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.0.2/Makefile diff --git a/linux/atlassian/confluence/6/6.0.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.0.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.0.2/docker-compose.yml 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/atlassian/confluence/6/6.0.3/.env b/linux/ecosystem/atlassian/confluence/6/6.0.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.0.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.0.3/.env diff --git a/linux/atlassian/confluence/6/6.0.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.0.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.0.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.12.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.12.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.0.3/Makefile diff --git a/linux/atlassian/confluence/6/6.0.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.0.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.0.3/docker-compose.yml 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/atlassian/confluence/6/6.0.4/.env b/linux/ecosystem/atlassian/confluence/6/6.0.4/.env similarity index 100% rename from linux/atlassian/confluence/6/6.0.4/.env rename to linux/ecosystem/atlassian/confluence/6/6.0.4/.env diff --git a/linux/atlassian/confluence/6/6.0.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.0.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.0.4/Dockerfile diff --git a/linux/atlassian/confluence/6/6.12.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.4/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.12.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.0.4/Makefile diff --git a/linux/atlassian/confluence/6/6.0.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.4/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.0.4/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.0.4/docker-compose.yml 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/atlassian/confluence/6/6.0.5/.env b/linux/ecosystem/atlassian/confluence/6/6.0.5/.env similarity index 100% rename from linux/atlassian/confluence/6/6.0.5/.env rename to linux/ecosystem/atlassian/confluence/6/6.0.5/.env diff --git a/linux/atlassian/confluence/6/6.0.5/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.5/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.0.5/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.0.5/Dockerfile diff --git a/linux/atlassian/confluence/6/6.12.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.5/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.12.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.0.5/Makefile diff --git a/linux/atlassian/confluence/6/6.0.5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.5/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.0.5/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.0.5/docker-compose.yml 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/atlassian/confluence/6/6.0.6/.env b/linux/ecosystem/atlassian/confluence/6/6.0.6/.env similarity index 100% rename from linux/atlassian/confluence/6/6.0.6/.env rename to linux/ecosystem/atlassian/confluence/6/6.0.6/.env diff --git a/linux/atlassian/confluence/6/6.0.6/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.6/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.0.6/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.0.6/Dockerfile diff --git a/linux/atlassian/confluence/6/6.12.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.6/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.12.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.0.6/Makefile diff --git a/linux/atlassian/confluence/6/6.0.6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.6/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.0.6/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.0.6/docker-compose.yml 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/atlassian/confluence/6/6.0.7/.env b/linux/ecosystem/atlassian/confluence/6/6.0.7/.env similarity index 100% rename from linux/atlassian/confluence/6/6.0.7/.env rename to linux/ecosystem/atlassian/confluence/6/6.0.7/.env diff --git a/linux/atlassian/confluence/6/6.0.7/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.0.7/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.0.7/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.0.7/Dockerfile diff --git a/linux/atlassian/confluence/6/6.12.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.0.7/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.12.4/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.0.7/Makefile diff --git a/linux/atlassian/confluence/6/6.0.7/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.0.7/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.0.7/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.0.7/docker-compose.yml 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/atlassian/confluence/6/6.1.0/.env b/linux/ecosystem/atlassian/confluence/6/6.1.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.1.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.1.0/.env diff --git a/linux/atlassian/confluence/6/6.1.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.1.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.1.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.1.0/Makefile diff --git a/linux/atlassian/confluence/6/6.1.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.1.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.1.0/docker-compose.yml 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/atlassian/confluence/6/6.1.1/.env b/linux/ecosystem/atlassian/confluence/6/6.1.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.1.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.1.1/.env diff --git a/linux/atlassian/confluence/6/6.1.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.1.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.1.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.1.1/Makefile diff --git a/linux/atlassian/confluence/6/6.1.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.1.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.1.1/docker-compose.yml 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/atlassian/confluence/6/6.1.2/.env b/linux/ecosystem/atlassian/confluence/6/6.1.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.1.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.1.2/.env diff --git a/linux/atlassian/confluence/6/6.1.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.1.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.1.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.10/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.10/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.1.2/Makefile diff --git a/linux/atlassian/confluence/6/6.1.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.1.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.1.2/docker-compose.yml 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/atlassian/confluence/6/6.1.3/.env b/linux/ecosystem/atlassian/confluence/6/6.1.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.1.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.1.3/.env diff --git a/linux/atlassian/confluence/6/6.1.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.1.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.1.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.11/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.11/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.1.3/Makefile diff --git a/linux/atlassian/confluence/6/6.1.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.1.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.1.3/docker-compose.yml 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/atlassian/confluence/6/6.1.4/.env b/linux/ecosystem/atlassian/confluence/6/6.1.4/.env similarity index 100% rename from linux/atlassian/confluence/6/6.1.4/.env rename to linux/ecosystem/atlassian/confluence/6/6.1.4/.env diff --git a/linux/atlassian/confluence/6/6.1.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.1.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.1.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.1.4/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.12/Makefile b/linux/ecosystem/atlassian/confluence/6/6.1.4/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.12/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.1.4/Makefile diff --git a/linux/atlassian/confluence/6/6.1.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.1.4/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.1.4/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.1.4/docker-compose.yml 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/atlassian/confluence/6/6.10.0/.env b/linux/ecosystem/atlassian/confluence/6/6.10.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.10.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.10.0/.env diff --git a/linux/atlassian/confluence/6/6.10.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.10.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.10.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.10.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.13/Makefile b/linux/ecosystem/atlassian/confluence/6/6.10.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.13/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.10.0/Makefile diff --git a/linux/atlassian/confluence/6/6.10.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.10.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.10.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.10.0/docker-compose.yml 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/atlassian/confluence/6/6.10.1/.env b/linux/ecosystem/atlassian/confluence/6/6.10.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.10.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.10.1/.env diff --git a/linux/atlassian/confluence/6/6.10.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.10.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.10.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.10.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.15/Makefile b/linux/ecosystem/atlassian/confluence/6/6.10.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.15/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.10.1/Makefile diff --git a/linux/atlassian/confluence/6/6.10.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.10.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.10.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.10.1/docker-compose.yml 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/atlassian/confluence/6/6.10.2/.env b/linux/ecosystem/atlassian/confluence/6/6.10.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.10.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.10.2/.env diff --git a/linux/atlassian/confluence/6/6.10.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.10.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.10.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.10.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.17/Makefile b/linux/ecosystem/atlassian/confluence/6/6.10.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.17/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.10.2/Makefile diff --git a/linux/atlassian/confluence/6/6.10.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.10.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.10.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.10.2/docker-compose.yml 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/atlassian/confluence/6/6.10.3/.env b/linux/ecosystem/atlassian/confluence/6/6.10.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.10.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.10.3/.env diff --git a/linux/atlassian/confluence/6/6.10.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.10.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.10.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.10.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.18/Makefile b/linux/ecosystem/atlassian/confluence/6/6.10.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.18/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.10.3/Makefile diff --git a/linux/atlassian/confluence/6/6.10.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.10.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.10.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.10.3/docker-compose.yml 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/atlassian/confluence/6/6.11.0/.env b/linux/ecosystem/atlassian/confluence/6/6.11.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.11.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.11.0/.env diff --git a/linux/atlassian/confluence/6/6.11.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.11.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.11.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.11.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.19/Makefile b/linux/ecosystem/atlassian/confluence/6/6.11.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.19/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.11.0/Makefile diff --git a/linux/atlassian/confluence/6/6.11.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.11.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.11.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.11.0/docker-compose.yml 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/atlassian/confluence/6/6.11.1/.env b/linux/ecosystem/atlassian/confluence/6/6.11.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.11.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.11.1/.env diff --git a/linux/atlassian/confluence/6/6.11.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.11.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.11.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.11.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.11.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.11.1/Makefile diff --git a/linux/atlassian/confluence/6/6.11.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.11.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.11.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.11.1/docker-compose.yml 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/atlassian/confluence/6/6.11.2/.env b/linux/ecosystem/atlassian/confluence/6/6.11.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.11.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.11.2/.env diff --git a/linux/atlassian/confluence/6/6.11.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.11.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.11.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.11.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.20/Makefile b/linux/ecosystem/atlassian/confluence/6/6.11.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.20/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.11.2/Makefile diff --git a/linux/atlassian/confluence/6/6.11.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.11.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.11.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.11.2/docker-compose.yml 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/atlassian/confluence/6/6.12.0/.env b/linux/ecosystem/atlassian/confluence/6/6.12.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.12.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.12.0/.env diff --git a/linux/atlassian/confluence/6/6.12.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.12.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.12.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.21/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.21/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.12.0/Makefile diff --git a/linux/atlassian/confluence/6/6.12.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.12.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.12.0/docker-compose.yml 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/atlassian/confluence/6/6.12.1/.env b/linux/ecosystem/atlassian/confluence/6/6.12.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.12.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.12.1/.env diff --git a/linux/atlassian/confluence/6/6.12.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.12.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.12.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.12.1/Makefile diff --git a/linux/atlassian/confluence/6/6.12.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.12.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.12.1/docker-compose.yml 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/atlassian/confluence/6/6.12.2/.env b/linux/ecosystem/atlassian/confluence/6/6.12.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.12.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.12.2/.env diff --git a/linux/atlassian/confluence/6/6.12.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.12.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.12.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.4/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.12.2/Makefile diff --git a/linux/atlassian/confluence/6/6.12.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.12.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.12.2/docker-compose.yml 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/atlassian/confluence/6/6.12.3/.env b/linux/ecosystem/atlassian/confluence/6/6.12.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.12.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.12.3/.env diff --git a/linux/atlassian/confluence/6/6.12.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.12.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.12.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.5/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.5/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.12.3/Makefile diff --git a/linux/atlassian/confluence/6/6.12.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.12.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.12.3/docker-compose.yml 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/atlassian/confluence/6/6.12.4/.env b/linux/ecosystem/atlassian/confluence/6/6.12.4/.env similarity index 100% rename from linux/atlassian/confluence/6/6.12.4/.env rename to linux/ecosystem/atlassian/confluence/6/6.12.4/.env diff --git a/linux/atlassian/confluence/6/6.12.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.12.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.12.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.12.4/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.6/Makefile b/linux/ecosystem/atlassian/confluence/6/6.12.4/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.6/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.12.4/Makefile diff --git a/linux/atlassian/confluence/6/6.12.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.12.4/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.12.4/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.12.4/docker-compose.yml 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/atlassian/confluence/6/6.13.0/.env b/linux/ecosystem/atlassian/confluence/6/6.13.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.0/.env diff --git a/linux/atlassian/confluence/6/6.13.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.7/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.7/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.0/Makefile diff --git a/linux/atlassian/confluence/6/6.13.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.0/docker-compose.yml 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/atlassian/confluence/6/6.13.1/.env b/linux/ecosystem/atlassian/confluence/6/6.13.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.1/.env diff --git a/linux/atlassian/confluence/6/6.13.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.8/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.8/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.1/Makefile diff --git a/linux/atlassian/confluence/6/6.13.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.1/docker-compose.yml 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/atlassian/confluence/6/6.13.10/.env b/linux/ecosystem/atlassian/confluence/6/6.13.10/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.10/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.10/.env diff --git a/linux/atlassian/confluence/6/6.13.10/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.10/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.10/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.10/Dockerfile diff --git a/linux/atlassian/confluence/6/6.13.9/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.10/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.13.9/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.10/Makefile diff --git a/linux/atlassian/confluence/6/6.13.10/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.10/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.10/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.10/docker-compose.yml 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/atlassian/confluence/6/6.13.11/.env b/linux/ecosystem/atlassian/confluence/6/6.13.11/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.11/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.11/.env diff --git a/linux/atlassian/confluence/6/6.13.11/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.11/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.11/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.11/Dockerfile diff --git a/linux/atlassian/confluence/6/6.14.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.11/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.14.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.11/Makefile diff --git a/linux/atlassian/confluence/6/6.13.11/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.11/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.11/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.11/docker-compose.yml 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/atlassian/confluence/6/6.13.12/.env b/linux/ecosystem/atlassian/confluence/6/6.13.12/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.12/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.12/.env diff --git a/linux/atlassian/confluence/6/6.13.12/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.12/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.12/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.12/Dockerfile diff --git a/linux/atlassian/confluence/6/6.14.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.12/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.14.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.12/Makefile diff --git a/linux/atlassian/confluence/6/6.13.12/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.12/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.12/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.12/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.12/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.12/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.12/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.12/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.13/.env b/linux/ecosystem/atlassian/confluence/6/6.13.13/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.13/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.13/.env diff --git a/linux/atlassian/confluence/6/6.13.13/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.13/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.13/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.13/Dockerfile diff --git a/linux/atlassian/confluence/6/6.14.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.13/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.14.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.13/Makefile diff --git a/linux/atlassian/confluence/6/6.13.13/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.13/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.13/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.13/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.13/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.13/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.13/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.13/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.15/.env b/linux/ecosystem/atlassian/confluence/6/6.13.15/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.15/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.15/.env diff --git a/linux/atlassian/confluence/6/6.13.15/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.15/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.15/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.15/Dockerfile diff --git a/linux/atlassian/confluence/6/6.14.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.15/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.14.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.15/Makefile diff --git a/linux/atlassian/confluence/6/6.13.15/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.15/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.15/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.15/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.15/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.15/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.15/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.15/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.17/.env b/linux/ecosystem/atlassian/confluence/6/6.13.17/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.17/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.17/.env diff --git a/linux/atlassian/confluence/6/6.13.17/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.17/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.17/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.17/Dockerfile diff --git a/linux/atlassian/confluence/6/6.15.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.17/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.15.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.17/Makefile diff --git a/linux/atlassian/confluence/6/6.13.17/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.17/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.17/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.17/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.17/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.17/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.17/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.17/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.18/.env b/linux/ecosystem/atlassian/confluence/6/6.13.18/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.18/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.18/.env diff --git a/linux/atlassian/confluence/6/6.13.18/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.18/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.18/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.18/Dockerfile diff --git a/linux/atlassian/confluence/6/6.15.10/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.18/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.15.10/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.18/Makefile diff --git a/linux/atlassian/confluence/6/6.13.18/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.18/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.18/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.18/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.18/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.18/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.18/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.18/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.19/.env b/linux/ecosystem/atlassian/confluence/6/6.13.19/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.19/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.19/.env diff --git a/linux/atlassian/confluence/6/6.13.19/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.19/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.19/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.19/Dockerfile diff --git a/linux/atlassian/confluence/6/6.15.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.19/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.15.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.19/Makefile diff --git a/linux/atlassian/confluence/6/6.13.19/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.19/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.19/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.19/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.19/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.19/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.19/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.19/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.2/.env b/linux/ecosystem/atlassian/confluence/6/6.13.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.2/.env diff --git a/linux/atlassian/confluence/6/6.13.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.15.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.15.4/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.2/Makefile diff --git a/linux/atlassian/confluence/6/6.13.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.2/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.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.20/.env b/linux/ecosystem/atlassian/confluence/6/6.13.20/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.20/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.20/.env diff --git a/linux/atlassian/confluence/6/6.13.20/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.20/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.20/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.20/Dockerfile diff --git a/linux/atlassian/confluence/6/6.15.6/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.20/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.15.6/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.20/Makefile diff --git a/linux/atlassian/confluence/6/6.13.20/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.20/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.20/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.20/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.20/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.20/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.20/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.20/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.21/.env b/linux/ecosystem/atlassian/confluence/6/6.13.21/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.21/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.21/.env diff --git a/linux/atlassian/confluence/6/6.13.21/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.21/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.21/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.21/Dockerfile diff --git a/linux/atlassian/confluence/6/6.15.7/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.21/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.15.7/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.21/Makefile diff --git a/linux/atlassian/confluence/6/6.13.21/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.21/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.21/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.21/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.21/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.21/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.13.21/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.13.21/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.3/.env b/linux/ecosystem/atlassian/confluence/6/6.13.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.3/.env diff --git a/linux/atlassian/confluence/6/6.13.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.15.8/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.15.8/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.3/Makefile diff --git a/linux/atlassian/confluence/6/6.13.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.3/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.3/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.4/.env b/linux/ecosystem/atlassian/confluence/6/6.13.4/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.4/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.4/.env diff --git a/linux/atlassian/confluence/6/6.13.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.4/Dockerfile diff --git a/linux/atlassian/confluence/6/6.15.9/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.4/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.15.9/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.4/Makefile diff --git a/linux/atlassian/confluence/6/6.13.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.4/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.4/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.4/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.4/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.4/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.5/.env b/linux/ecosystem/atlassian/confluence/6/6.13.5/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.5/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.5/.env diff --git a/linux/atlassian/confluence/6/6.13.5/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.5/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.5/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.5/Dockerfile diff --git a/linux/atlassian/confluence/6/6.2.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.5/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.2.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.5/Makefile diff --git a/linux/atlassian/confluence/6/6.13.5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.5/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.5/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.5/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.5/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.5/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.6/.env b/linux/ecosystem/atlassian/confluence/6/6.13.6/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.6/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.6/.env diff --git a/linux/atlassian/confluence/6/6.13.6/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.6/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.6/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.6/Dockerfile diff --git a/linux/atlassian/confluence/6/6.2.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.6/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.2.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.6/Makefile diff --git a/linux/atlassian/confluence/6/6.13.6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.6/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.6/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.6/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.6/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.6/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.6/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.7/.env b/linux/ecosystem/atlassian/confluence/6/6.13.7/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.7/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.7/.env diff --git a/linux/atlassian/confluence/6/6.13.7/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.7/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.7/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.7/Dockerfile diff --git a/linux/atlassian/confluence/6/6.2.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.7/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.2.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.7/Makefile diff --git a/linux/atlassian/confluence/6/6.13.7/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.7/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.7/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.7/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.7/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.7/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.7/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.8/.env b/linux/ecosystem/atlassian/confluence/6/6.13.8/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.8/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.8/.env diff --git a/linux/atlassian/confluence/6/6.13.8/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.8/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.8/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.8/Dockerfile diff --git a/linux/atlassian/confluence/6/6.2.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.8/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.2.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.8/Makefile diff --git a/linux/atlassian/confluence/6/6.13.8/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.8/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.8/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.8/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.8/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.8/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.8/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.13.9/.env b/linux/ecosystem/atlassian/confluence/6/6.13.9/.env similarity index 100% rename from linux/atlassian/confluence/6/6.13.9/.env rename to linux/ecosystem/atlassian/confluence/6/6.13.9/.env diff --git a/linux/atlassian/confluence/6/6.13.9/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.13.9/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.13.9/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.13.9/Dockerfile diff --git a/linux/atlassian/confluence/6/6.2.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.13.9/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.2.4/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.13.9/Makefile diff --git a/linux/atlassian/confluence/6/6.13.9/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.13.9/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.13.9/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.13.9/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.13.9/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.13.9/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.9/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.14.0/.env b/linux/ecosystem/atlassian/confluence/6/6.14.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.14.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.14.0/.env diff --git a/linux/atlassian/confluence/6/6.14.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.14.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.14.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.14.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.3.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.14.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.3.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.14.0/Makefile diff --git a/linux/atlassian/confluence/6/6.14.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.14.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.14.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.14.0/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.14.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.14.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.14.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.14.0/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.14.1/.env b/linux/ecosystem/atlassian/confluence/6/6.14.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.14.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.14.1/.env diff --git a/linux/atlassian/confluence/6/6.14.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.14.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.14.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.14.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.3.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.14.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.3.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.14.1/Makefile diff --git a/linux/atlassian/confluence/6/6.14.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.14.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.14.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.14.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.14.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.14.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.14.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.14.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.14.2/.env b/linux/ecosystem/atlassian/confluence/6/6.14.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.14.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.14.2/.env diff --git a/linux/atlassian/confluence/6/6.14.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.14.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.14.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.14.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.3.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.14.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.3.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.14.2/Makefile diff --git a/linux/atlassian/confluence/6/6.14.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.14.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.14.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.14.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.14.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.14.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.14.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.14.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.14.3/.env b/linux/ecosystem/atlassian/confluence/6/6.14.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.14.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.14.3/.env diff --git a/linux/atlassian/confluence/6/6.14.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.14.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.14.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.14.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.3.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.14.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.3.4/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.14.3/Makefile diff --git a/linux/atlassian/confluence/6/6.14.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.14.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.14.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.14.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.14.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.14.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.14.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.14.3/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.15.1/.env b/linux/ecosystem/atlassian/confluence/6/6.15.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.15.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.15.1/.env diff --git a/linux/atlassian/confluence/6/6.15.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.15.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.15.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.4.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.4.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.15.1/Makefile diff --git a/linux/atlassian/confluence/6/6.15.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.15.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.15.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.15.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.15.10/.env b/linux/ecosystem/atlassian/confluence/6/6.15.10/.env similarity index 100% rename from linux/atlassian/confluence/6/6.15.10/.env rename to linux/ecosystem/atlassian/confluence/6/6.15.10/.env diff --git a/linux/atlassian/confluence/6/6.15.10/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.10/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.15.10/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.15.10/Dockerfile diff --git a/linux/atlassian/confluence/6/6.4.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.10/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.4.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.15.10/Makefile diff --git a/linux/atlassian/confluence/6/6.15.10/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.10/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.15.10/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.15.10/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.15.10/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.10/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.10/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.10/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.15.2/.env b/linux/ecosystem/atlassian/confluence/6/6.15.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.15.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.15.2/.env diff --git a/linux/atlassian/confluence/6/6.15.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.15.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.15.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.4.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.4.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.15.2/Makefile diff --git a/linux/atlassian/confluence/6/6.15.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.15.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.15.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.15.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.15.4/.env b/linux/ecosystem/atlassian/confluence/6/6.15.4/.env similarity index 100% rename from linux/atlassian/confluence/6/6.15.4/.env rename to linux/ecosystem/atlassian/confluence/6/6.15.4/.env diff --git a/linux/atlassian/confluence/6/6.15.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.15.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.15.4/Dockerfile diff --git a/linux/atlassian/confluence/6/6.4.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.4/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.4.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.15.4/Makefile diff --git a/linux/atlassian/confluence/6/6.15.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.4/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.15.4/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.15.4/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.15.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.4/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.15.6/.env b/linux/ecosystem/atlassian/confluence/6/6.15.6/.env similarity index 100% rename from linux/atlassian/confluence/6/6.15.6/.env rename to linux/ecosystem/atlassian/confluence/6/6.15.6/.env diff --git a/linux/atlassian/confluence/6/6.15.6/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.6/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.15.6/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.15.6/Dockerfile diff --git a/linux/atlassian/confluence/6/6.5.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.6/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.5.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.15.6/Makefile diff --git a/linux/atlassian/confluence/6/6.15.6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.6/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.15.6/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.15.6/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.15.6/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.6/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.6/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.6/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.15.7/.env b/linux/ecosystem/atlassian/confluence/6/6.15.7/.env similarity index 100% rename from linux/atlassian/confluence/6/6.15.7/.env rename to linux/ecosystem/atlassian/confluence/6/6.15.7/.env diff --git a/linux/atlassian/confluence/6/6.15.7/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.7/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.15.7/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.15.7/Dockerfile diff --git a/linux/atlassian/confluence/6/6.5.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.7/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.5.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.15.7/Makefile diff --git a/linux/atlassian/confluence/6/6.15.7/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.7/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.15.7/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.15.7/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.15.7/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.7/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.7/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.7/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.15.8/.env b/linux/ecosystem/atlassian/confluence/6/6.15.8/.env similarity index 100% rename from linux/atlassian/confluence/6/6.15.8/.env rename to linux/ecosystem/atlassian/confluence/6/6.15.8/.env diff --git a/linux/atlassian/confluence/6/6.15.8/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.8/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.15.8/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.15.8/Dockerfile diff --git a/linux/atlassian/confluence/6/6.5.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.8/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.5.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.15.8/Makefile diff --git a/linux/atlassian/confluence/6/6.15.8/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.8/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.15.8/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.15.8/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.15.8/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.8/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.8/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.8/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.15.9/.env b/linux/ecosystem/atlassian/confluence/6/6.15.9/.env similarity index 100% rename from linux/atlassian/confluence/6/6.15.9/.env rename to linux/ecosystem/atlassian/confluence/6/6.15.9/.env diff --git a/linux/atlassian/confluence/6/6.15.9/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.15.9/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.15.9/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.15.9/Dockerfile diff --git a/linux/atlassian/confluence/6/6.5.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.15.9/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.5.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.15.9/Makefile diff --git a/linux/atlassian/confluence/6/6.15.9/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.15.9/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.15.9/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.15.9/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.15.9/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.15.9/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.15.9/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.15.9/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.2.0/.env b/linux/ecosystem/atlassian/confluence/6/6.2.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.2.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.2.0/.env diff --git a/linux/atlassian/confluence/6/6.2.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.2.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.2.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.2.0/Makefile diff --git a/linux/atlassian/confluence/6/6.2.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.2.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.2.0/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.2.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.2.0/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.2.1/.env b/linux/ecosystem/atlassian/confluence/6/6.2.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.2.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.2.1/.env diff --git a/linux/atlassian/confluence/6/6.2.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.2.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.2.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.2.1/Makefile diff --git a/linux/atlassian/confluence/6/6.2.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.2.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.2.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.2.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.2.2/.env b/linux/ecosystem/atlassian/confluence/6/6.2.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.2.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.2.2/.env diff --git a/linux/atlassian/confluence/6/6.2.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.2.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.2.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.10/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.10/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.2.2/Makefile diff --git a/linux/atlassian/confluence/6/6.2.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.2.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.2.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.2.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.2.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.2.3/.env b/linux/ecosystem/atlassian/confluence/6/6.2.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.2.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.2.3/.env diff --git a/linux/atlassian/confluence/6/6.2.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.2.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.2.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.11/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.11/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.2.3/Makefile diff --git a/linux/atlassian/confluence/6/6.2.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.2.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.2.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.2.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.2.3/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.2.4/.env b/linux/ecosystem/atlassian/confluence/6/6.2.4/.env similarity index 100% rename from linux/atlassian/confluence/6/6.2.4/.env rename to linux/ecosystem/atlassian/confluence/6/6.2.4/.env diff --git a/linux/atlassian/confluence/6/6.2.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.2.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.2.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.2.4/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.12/Makefile b/linux/ecosystem/atlassian/confluence/6/6.2.4/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.12/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.2.4/Makefile diff --git a/linux/atlassian/confluence/6/6.2.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.2.4/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.2.4/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.2.4/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.2.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.2.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.2.4/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.3.1/.env b/linux/ecosystem/atlassian/confluence/6/6.3.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.3.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.3.1/.env diff --git a/linux/atlassian/confluence/6/6.3.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.3.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.3.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.3.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.13/Makefile b/linux/ecosystem/atlassian/confluence/6/6.3.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.13/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.3.1/Makefile diff --git a/linux/atlassian/confluence/6/6.3.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.3.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.3.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.3.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.3.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.3.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.3.2/.env b/linux/ecosystem/atlassian/confluence/6/6.3.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.3.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.3.2/.env diff --git a/linux/atlassian/confluence/6/6.3.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.3.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.3.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.3.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.14/Makefile b/linux/ecosystem/atlassian/confluence/6/6.3.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.14/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.3.2/Makefile diff --git a/linux/atlassian/confluence/6/6.3.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.3.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.3.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.3.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.3.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.3.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.3.3/.env b/linux/ecosystem/atlassian/confluence/6/6.3.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.3.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.3.3/.env diff --git a/linux/atlassian/confluence/6/6.3.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.3.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.3.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.3.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.15/Makefile b/linux/ecosystem/atlassian/confluence/6/6.3.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.15/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.3.3/Makefile diff --git a/linux/atlassian/confluence/6/6.3.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.3.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.3.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.3.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.3.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.3.3/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.3.4/.env b/linux/ecosystem/atlassian/confluence/6/6.3.4/.env similarity index 100% rename from linux/atlassian/confluence/6/6.3.4/.env rename to linux/ecosystem/atlassian/confluence/6/6.3.4/.env diff --git a/linux/atlassian/confluence/6/6.3.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.3.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.3.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.3.4/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.16/Makefile b/linux/ecosystem/atlassian/confluence/6/6.3.4/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.16/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.3.4/Makefile diff --git a/linux/atlassian/confluence/6/6.3.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.3.4/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.3.4/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.3.4/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.3.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.3.4/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.4.0/.env b/linux/ecosystem/atlassian/confluence/6/6.4.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.4.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.4.0/.env diff --git a/linux/atlassian/confluence/6/6.4.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.4.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.4.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.4.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.17/Makefile b/linux/ecosystem/atlassian/confluence/6/6.4.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.17/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.4.0/Makefile diff --git a/linux/atlassian/confluence/6/6.4.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.4.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.4.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.4.0/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.4.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.4.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.4.0/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.4.1/.env b/linux/ecosystem/atlassian/confluence/6/6.4.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.4.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.4.1/.env diff --git a/linux/atlassian/confluence/6/6.4.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.4.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.4.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.4.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.4.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.4.1/Makefile diff --git a/linux/atlassian/confluence/6/6.4.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.4.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.4.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.4.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.4.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.4.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.4.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.4.2/.env b/linux/ecosystem/atlassian/confluence/6/6.4.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.4.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.4.2/.env diff --git a/linux/atlassian/confluence/6/6.4.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.4.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.4.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.4.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.4.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.4.2/Makefile diff --git a/linux/atlassian/confluence/6/6.4.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.4.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.4.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.4.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.4.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.4.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.4.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.4.3/.env b/linux/ecosystem/atlassian/confluence/6/6.4.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.4.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.4.3/.env diff --git a/linux/atlassian/confluence/6/6.4.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.4.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.4.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.4.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.4.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.4/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.4.3/Makefile diff --git a/linux/atlassian/confluence/6/6.4.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.4.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.4.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.4.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.4.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.4.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.4.3/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.5.0/.env b/linux/ecosystem/atlassian/confluence/6/6.5.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.5.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.5.0/.env diff --git a/linux/atlassian/confluence/6/6.5.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.5.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.5.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.5.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.5/Makefile b/linux/ecosystem/atlassian/confluence/6/6.5.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.5/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.5.0/Makefile diff --git a/linux/atlassian/confluence/6/6.5.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.5.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.5.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.5.0/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.5.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.5.0/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.5.1/.env b/linux/ecosystem/atlassian/confluence/6/6.5.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.5.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.5.1/.env diff --git a/linux/atlassian/confluence/6/6.5.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.5.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.5.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.5.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.6/Makefile b/linux/ecosystem/atlassian/confluence/6/6.5.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.6/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.5.1/Makefile diff --git a/linux/atlassian/confluence/6/6.5.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.5.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.5.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.5.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.5.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.5.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.5.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.5.2/.env b/linux/ecosystem/atlassian/confluence/6/6.5.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.5.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.5.2/.env diff --git a/linux/atlassian/confluence/6/6.5.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.5.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.5.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.5.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.7/Makefile b/linux/ecosystem/atlassian/confluence/6/6.5.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.7/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.5.2/Makefile diff --git a/linux/atlassian/confluence/6/6.5.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.5.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.5.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.5.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.5.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.5.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.5.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.5.3/.env b/linux/ecosystem/atlassian/confluence/6/6.5.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.5.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.5.3/.env diff --git a/linux/atlassian/confluence/6/6.5.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.5.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.5.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.5.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.8/Makefile b/linux/ecosystem/atlassian/confluence/6/6.5.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.8/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.5.3/Makefile diff --git a/linux/atlassian/confluence/6/6.5.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.5.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.5.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.5.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.5.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.5.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.5.3/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.0/.env b/linux/ecosystem/atlassian/confluence/6/6.6.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.0/.env diff --git a/linux/atlassian/confluence/6/6.6.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.0/Dockerfile diff --git a/linux/atlassian/confluence/6/6.6.9/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.0/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.6.9/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.0/Makefile diff --git a/linux/atlassian/confluence/6/6.6.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.0/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.0/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.1/.env b/linux/ecosystem/atlassian/confluence/6/6.6.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.1/.env diff --git a/linux/atlassian/confluence/6/6.6.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.1/Dockerfile diff --git a/linux/atlassian/confluence/6/6.7.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.1/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.7.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.1/Makefile diff --git a/linux/atlassian/confluence/6/6.6.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.10/.env b/linux/ecosystem/atlassian/confluence/6/6.6.10/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.10/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.10/.env diff --git a/linux/atlassian/confluence/6/6.6.10/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.10/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.10/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.10/Dockerfile diff --git a/linux/atlassian/confluence/6/6.7.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.10/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.7.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.10/Makefile diff --git a/linux/atlassian/confluence/6/6.6.10/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.10/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.10/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.10/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.10/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.10/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.10/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.10/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.11/.env b/linux/ecosystem/atlassian/confluence/6/6.6.11/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.11/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.11/.env diff --git a/linux/atlassian/confluence/6/6.6.11/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.11/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.11/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.11/Dockerfile diff --git a/linux/atlassian/confluence/6/6.7.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.11/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.7.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.11/Makefile diff --git a/linux/atlassian/confluence/6/6.6.11/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.11/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.11/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.11/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.11/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.11/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.11/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.11/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.12/.env b/linux/ecosystem/atlassian/confluence/6/6.6.12/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.12/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.12/.env diff --git a/linux/atlassian/confluence/6/6.6.12/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.12/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.12/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.12/Dockerfile diff --git a/linux/atlassian/confluence/6/6.7.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.12/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.7.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.12/Makefile diff --git a/linux/atlassian/confluence/6/6.6.12/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.12/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.12/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.12/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.12/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.12/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.12/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.12/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.13/.env b/linux/ecosystem/atlassian/confluence/6/6.6.13/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.13/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.13/.env diff --git a/linux/atlassian/confluence/6/6.6.13/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.13/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.13/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.13/Dockerfile diff --git a/linux/atlassian/confluence/6/6.8.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.13/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.8.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.13/Makefile diff --git a/linux/atlassian/confluence/6/6.6.13/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.13/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.13/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.13/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.13/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.13/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.13/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.13/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.14/.env b/linux/ecosystem/atlassian/confluence/6/6.6.14/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.14/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.14/.env diff --git a/linux/atlassian/confluence/6/6.6.14/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.14/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.14/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.14/Dockerfile diff --git a/linux/atlassian/confluence/6/6.8.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.14/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.8.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.14/Makefile diff --git a/linux/atlassian/confluence/6/6.6.14/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.14/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.14/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.14/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.14/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.14/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.14/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.14/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.15/.env b/linux/ecosystem/atlassian/confluence/6/6.6.15/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.15/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.15/.env diff --git a/linux/atlassian/confluence/6/6.6.15/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.15/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.15/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.15/Dockerfile diff --git a/linux/atlassian/confluence/6/6.8.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.15/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.8.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.15/Makefile diff --git a/linux/atlassian/confluence/6/6.6.15/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.15/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.15/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.15/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.15/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.15/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.15/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.15/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.16/.env b/linux/ecosystem/atlassian/confluence/6/6.6.16/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.16/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.16/.env diff --git a/linux/atlassian/confluence/6/6.6.16/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.16/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.16/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.16/Dockerfile diff --git a/linux/atlassian/confluence/6/6.8.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.16/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.8.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.16/Makefile diff --git a/linux/atlassian/confluence/6/6.6.16/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.16/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.16/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.16/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.16/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.16/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.16/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.16/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.17/.env b/linux/ecosystem/atlassian/confluence/6/6.6.17/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.17/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.17/.env diff --git a/linux/atlassian/confluence/6/6.6.17/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.17/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.17/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.17/Dockerfile diff --git a/linux/atlassian/confluence/6/6.8.5/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.17/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.8.5/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.17/Makefile diff --git a/linux/atlassian/confluence/6/6.6.17/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.17/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.17/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.17/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.17/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.17/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.6.17/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.6.17/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.2/.env b/linux/ecosystem/atlassian/confluence/6/6.6.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.2/.env diff --git a/linux/atlassian/confluence/6/6.6.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.2/Dockerfile diff --git a/linux/atlassian/confluence/6/6.9.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.2/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.9.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.2/Makefile diff --git a/linux/atlassian/confluence/6/6.6.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.2/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.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.3/.env b/linux/ecosystem/atlassian/confluence/6/6.6.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.3/.env diff --git a/linux/atlassian/confluence/6/6.6.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.3/Dockerfile diff --git a/linux/atlassian/confluence/6/6.9.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.3/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.9.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.3/Makefile diff --git a/linux/atlassian/confluence/6/6.6.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.3/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.3/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.4/.env b/linux/ecosystem/atlassian/confluence/6/6.6.4/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.4/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.4/.env diff --git a/linux/atlassian/confluence/6/6.6.4/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.4/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.4/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.4/Dockerfile diff --git a/linux/atlassian/confluence/6/6.9.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.4/Makefile similarity index 100% rename from linux/atlassian/confluence/6/6.9.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.4/Makefile diff --git a/linux/atlassian/confluence/6/6.6.4/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.4/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.4/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.4/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.4/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.4/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.5/.env b/linux/ecosystem/atlassian/confluence/6/6.6.5/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.5/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.5/.env diff --git a/linux/atlassian/confluence/6/6.6.5/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.5/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.5/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.5/Dockerfile diff --git a/linux/atlassian/confluence/templates/5/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.5/Makefile similarity index 100% rename from linux/atlassian/confluence/templates/5/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.5/Makefile diff --git a/linux/atlassian/confluence/6/6.6.5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.5/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.5/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.5/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.5/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.5/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.6/.env b/linux/ecosystem/atlassian/confluence/6/6.6.6/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.6/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.6/.env diff --git a/linux/atlassian/confluence/6/6.6.6/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.6/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.6/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.6/Dockerfile diff --git a/linux/atlassian/confluence/templates/6/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.6/Makefile similarity index 100% rename from linux/atlassian/confluence/templates/6/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.6/Makefile diff --git a/linux/atlassian/confluence/6/6.6.6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.6/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.6/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.6/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.6/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.6/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.6/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.7/.env b/linux/ecosystem/atlassian/confluence/6/6.6.7/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.7/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.7/.env diff --git a/linux/atlassian/confluence/6/6.6.7/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.7/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.7/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.7/Dockerfile diff --git a/linux/atlassian/crucible/1/1.0.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.7/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.0.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.7/Makefile diff --git a/linux/atlassian/confluence/6/6.6.7/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.7/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.7/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.7/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.7/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.7/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.7/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.8/.env b/linux/ecosystem/atlassian/confluence/6/6.6.8/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.8/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.8/.env diff --git a/linux/atlassian/confluence/6/6.6.8/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.8/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.8/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.8/Dockerfile diff --git a/linux/atlassian/crucible/1/1.0.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.8/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.0.4/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.8/Makefile diff --git a/linux/atlassian/confluence/6/6.6.8/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.8/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.8/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.8/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.8/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.8/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.8/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.6.9/.env b/linux/ecosystem/atlassian/confluence/6/6.6.9/.env similarity index 100% rename from linux/atlassian/confluence/6/6.6.9/.env rename to linux/ecosystem/atlassian/confluence/6/6.6.9/.env diff --git a/linux/atlassian/confluence/6/6.6.9/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.6.9/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.6.9/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.6.9/Dockerfile diff --git a/linux/atlassian/crucible/1/1.0/Makefile b/linux/ecosystem/atlassian/confluence/6/6.6.9/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.0/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.6.9/Makefile diff --git a/linux/atlassian/confluence/6/6.6.9/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.6.9/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.6.9/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.6.9/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.6.9/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.6.9/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.9/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.7.0/.env b/linux/ecosystem/atlassian/confluence/6/6.7.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.7.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.7.0/.env diff --git a/linux/atlassian/confluence/6/6.7.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.7.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.7.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.7.0/Dockerfile diff --git a/linux/atlassian/crucible/1/1.1.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.7.0/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.1.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.7.0/Makefile diff --git a/linux/atlassian/confluence/6/6.7.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.7.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.7.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.7.0/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.7.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.7.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.7.0/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.7.1/.env b/linux/ecosystem/atlassian/confluence/6/6.7.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.7.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.7.1/.env diff --git a/linux/atlassian/confluence/6/6.7.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.7.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.7.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.7.1/Dockerfile diff --git a/linux/atlassian/crucible/1/1.1.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.7.1/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.1.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.7.1/Makefile diff --git a/linux/atlassian/confluence/6/6.7.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.7.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.7.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.7.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.7.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.7.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.7.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.7.2/.env b/linux/ecosystem/atlassian/confluence/6/6.7.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.7.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.7.2/.env diff --git a/linux/atlassian/confluence/6/6.7.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.7.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.7.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.7.2/Dockerfile diff --git a/linux/atlassian/crucible/1/1.1.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.7.2/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.1.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.7.2/Makefile diff --git a/linux/atlassian/confluence/6/6.7.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.7.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.7.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.7.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.7.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.7.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.7.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.7.3/.env b/linux/ecosystem/atlassian/confluence/6/6.7.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.7.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.7.3/.env diff --git a/linux/atlassian/confluence/6/6.7.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.7.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.7.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.7.3/Dockerfile diff --git a/linux/atlassian/crucible/1/1.1.4/Makefile b/linux/ecosystem/atlassian/confluence/6/6.7.3/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.1.4/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.7.3/Makefile diff --git a/linux/atlassian/confluence/6/6.7.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.7.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.7.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.7.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.7.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.7.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.7.3/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.8.0/.env b/linux/ecosystem/atlassian/confluence/6/6.8.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.8.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.8.0/.env diff --git a/linux/atlassian/confluence/6/6.8.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.8.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.8.0/Dockerfile diff --git a/linux/atlassian/crucible/1/1.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.0/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.8.0/Makefile diff --git a/linux/atlassian/confluence/6/6.8.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.8.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.8.0/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.8.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.0/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.8.1/.env b/linux/ecosystem/atlassian/confluence/6/6.8.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.8.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.8.1/.env diff --git a/linux/atlassian/confluence/6/6.8.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.8.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.8.1/Dockerfile diff --git a/linux/atlassian/crucible/1/1.2.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.1/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.2.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.8.1/Makefile diff --git a/linux/atlassian/confluence/6/6.8.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.8.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.8.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.8.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.8.2/.env b/linux/ecosystem/atlassian/confluence/6/6.8.2/.env similarity index 100% rename from linux/atlassian/confluence/6/6.8.2/.env rename to linux/ecosystem/atlassian/confluence/6/6.8.2/.env diff --git a/linux/atlassian/confluence/6/6.8.2/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.2/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.8.2/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.8.2/Dockerfile diff --git a/linux/atlassian/crucible/1/1.2.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.2/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.2.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.8.2/Makefile diff --git a/linux/atlassian/confluence/6/6.8.2/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.2/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.8.2/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.8.2/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.8.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.2/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.8.3/.env b/linux/ecosystem/atlassian/confluence/6/6.8.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.8.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.8.3/.env diff --git a/linux/atlassian/confluence/6/6.8.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.8.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.8.3/Dockerfile diff --git a/linux/atlassian/crucible/1/1.2.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.3/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.2.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.8.3/Makefile diff --git a/linux/atlassian/confluence/6/6.8.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.8.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.8.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.8.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.3/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.8.5/.env b/linux/ecosystem/atlassian/confluence/6/6.8.5/.env similarity index 100% rename from linux/atlassian/confluence/6/6.8.5/.env rename to linux/ecosystem/atlassian/confluence/6/6.8.5/.env diff --git a/linux/atlassian/confluence/6/6.8.5/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.8.5/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.8.5/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.8.5/Dockerfile diff --git a/linux/atlassian/crucible/1/1.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.8.5/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.8.5/Makefile diff --git a/linux/atlassian/confluence/6/6.8.5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.8.5/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.8.5/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.8.5/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.8.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.8.5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.8.5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.8.5/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.9.0/.env b/linux/ecosystem/atlassian/confluence/6/6.9.0/.env similarity index 100% rename from linux/atlassian/confluence/6/6.9.0/.env rename to linux/ecosystem/atlassian/confluence/6/6.9.0/.env diff --git a/linux/atlassian/confluence/6/6.9.0/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.9.0/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.9.0/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.9.0/Dockerfile diff --git a/linux/atlassian/crucible/1/1.5.1/Makefile b/linux/ecosystem/atlassian/confluence/6/6.9.0/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.5.1/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.9.0/Makefile diff --git a/linux/atlassian/confluence/6/6.9.0/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.9.0/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.9.0/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.9.0/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.9.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.9.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.9.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.9.0/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.9.1/.env b/linux/ecosystem/atlassian/confluence/6/6.9.1/.env similarity index 100% rename from linux/atlassian/confluence/6/6.9.1/.env rename to linux/ecosystem/atlassian/confluence/6/6.9.1/.env diff --git a/linux/atlassian/confluence/6/6.9.1/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.9.1/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.9.1/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.9.1/Dockerfile diff --git a/linux/atlassian/crucible/1/1.5.2/Makefile b/linux/ecosystem/atlassian/confluence/6/6.9.1/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.5.2/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.9.1/Makefile diff --git a/linux/atlassian/confluence/6/6.9.1/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.9.1/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.9.1/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.9.1/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.9.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.9.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.9.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/6/6.9.1/entrypoint.sh diff --git a/linux/atlassian/confluence/6/6.9.3/.env b/linux/ecosystem/atlassian/confluence/6/6.9.3/.env similarity index 100% rename from linux/atlassian/confluence/6/6.9.3/.env rename to linux/ecosystem/atlassian/confluence/6/6.9.3/.env diff --git a/linux/atlassian/confluence/6/6.9.3/Dockerfile b/linux/ecosystem/atlassian/confluence/6/6.9.3/Dockerfile similarity index 100% rename from linux/atlassian/confluence/6/6.9.3/Dockerfile rename to linux/ecosystem/atlassian/confluence/6/6.9.3/Dockerfile diff --git a/linux/atlassian/crucible/1/1.5.3/Makefile b/linux/ecosystem/atlassian/confluence/6/6.9.3/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.5.3/Makefile rename to linux/ecosystem/atlassian/confluence/6/6.9.3/Makefile diff --git a/linux/atlassian/confluence/6/6.9.3/docker-compose.yml b/linux/ecosystem/atlassian/confluence/6/6.9.3/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/6/6.9.3/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/6/6.9.3/docker-compose.yml diff --git a/linux/atlassian/confluence/6/6.9.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/6/6.9.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/6/6.9.3/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.0.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.1/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.0.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.2/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.0.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.3/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.0.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.4/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.0.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.0.5/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.1.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.1.0/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.1.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.1.1/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.1.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.1.2/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/7/7.2.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.2.0/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/atlassian/confluence/7/7.2.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.2.1/entrypoint.sh 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/atlassian/confluence/7/7.2.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.2.2/entrypoint.sh 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/atlassian/confluence/7/7.3.1/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.3.1/entrypoint.sh 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/atlassian/confluence/7/7.3.2/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.3.2/entrypoint.sh 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/atlassian/confluence/7/7.3.3/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.3.3/entrypoint.sh 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/atlassian/confluence/7/7.3.4/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.3.4/entrypoint.sh 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/atlassian/confluence/7/7.3.5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.3.5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.3.5/entrypoint.sh 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/atlassian/confluence/7/7.4.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.4.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.4.0/entrypoint.sh 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/atlassian/confluence/7/7.5.0/entrypoint.sh b/linux/ecosystem/atlassian/confluence/7/7.5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/7/7.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/7/7.5.0/entrypoint.sh diff --git a/linux/atlassian/confluence/README.md b/linux/ecosystem/atlassian/confluence/README.md similarity index 100% rename from linux/atlassian/confluence/README.md rename to linux/ecosystem/atlassian/confluence/README.md diff --git a/linux/atlassian/confluence/latest/Dockerfile b/linux/ecosystem/atlassian/confluence/latest/Dockerfile similarity index 100% rename from linux/atlassian/confluence/latest/Dockerfile rename to linux/ecosystem/atlassian/confluence/latest/Dockerfile diff --git a/linux/atlassian/confluence/latest/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/confluence/latest/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 diff --git a/linux/atlassian/confluence/latest/Makefile b/linux/ecosystem/atlassian/confluence/latest/Makefile similarity index 100% rename from linux/atlassian/confluence/latest/Makefile rename to linux/ecosystem/atlassian/confluence/latest/Makefile diff --git a/linux/atlassian/confluence/latest/entrypoint.sh b/linux/ecosystem/atlassian/confluence/latest/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/latest/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/latest/entrypoint.sh diff --git a/linux/atlassian/confluence/templates/5/Dockerfile b/linux/ecosystem/atlassian/confluence/templates/5/Dockerfile similarity index 100% rename from linux/atlassian/confluence/templates/5/Dockerfile rename to linux/ecosystem/atlassian/confluence/templates/5/Dockerfile diff --git a/linux/atlassian/crucible/1/1.5.4/Makefile b/linux/ecosystem/atlassian/confluence/templates/5/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.5.4/Makefile rename to linux/ecosystem/atlassian/confluence/templates/5/Makefile diff --git a/linux/atlassian/confluence/templates/5/docker-compose.yml b/linux/ecosystem/atlassian/confluence/templates/5/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/templates/5/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/templates/5/docker-compose.yml diff --git a/linux/atlassian/confluence/templates/5/entrypoint.sh b/linux/ecosystem/atlassian/confluence/templates/5/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/templates/5/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/templates/5/entrypoint.sh diff --git a/linux/atlassian/confluence/templates/6/Dockerfile b/linux/ecosystem/atlassian/confluence/templates/6/Dockerfile similarity index 100% rename from linux/atlassian/confluence/templates/6/Dockerfile rename to linux/ecosystem/atlassian/confluence/templates/6/Dockerfile diff --git a/linux/atlassian/crucible/1/1.5/Makefile b/linux/ecosystem/atlassian/confluence/templates/6/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.5/Makefile rename to linux/ecosystem/atlassian/confluence/templates/6/Makefile diff --git a/linux/atlassian/confluence/templates/6/docker-compose.yml b/linux/ecosystem/atlassian/confluence/templates/6/docker-compose.yml similarity index 100% rename from linux/atlassian/confluence/templates/6/docker-compose.yml rename to linux/ecosystem/atlassian/confluence/templates/6/docker-compose.yml diff --git a/linux/atlassian/confluence/templates/6/entrypoint.sh b/linux/ecosystem/atlassian/confluence/templates/6/entrypoint.sh similarity index 100% rename from linux/atlassian/confluence/templates/6/entrypoint.sh rename to linux/ecosystem/atlassian/confluence/templates/6/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.0.3/.env b/linux/ecosystem/atlassian/crucible/1/1.0.3/.env similarity index 100% rename from linux/atlassian/crucible/1/1.0.3/.env rename to linux/ecosystem/atlassian/crucible/1/1.0.3/.env diff --git a/linux/atlassian/crucible/1/1.0.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.0.3/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.0.3/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.0.3/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.0/Makefile b/linux/ecosystem/atlassian/crucible/1/1.0.3/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.0/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.0.3/Makefile diff --git a/linux/atlassian/crucible/1/1.0.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.0.3/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.0.3/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.0.3/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.0.3/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.0.3/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.0.4/.env b/linux/ecosystem/atlassian/crucible/1/1.0.4/.env similarity index 100% rename from linux/atlassian/crucible/1/1.0.4/.env rename to linux/ecosystem/atlassian/crucible/1/1.0.4/.env diff --git a/linux/atlassian/crucible/1/1.0.4/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.0.4/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.0.4/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.0.4/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.0Beta1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.0.4/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta1/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.0.4/Makefile diff --git a/linux/atlassian/crucible/1/1.0.4/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.0.4/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.0.4/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.0.4/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.0.4/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.0.4/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.0/.env b/linux/ecosystem/atlassian/crucible/1/1.0/.env similarity index 100% rename from linux/atlassian/crucible/1/1.0/.env rename to linux/ecosystem/atlassian/crucible/1/1.0/.env diff --git a/linux/atlassian/crucible/1/1.0/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.0/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.0/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.0/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.0Beta2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.0/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta2/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.0/Makefile diff --git a/linux/atlassian/crucible/1/1.0/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.0/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.0/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.0/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.0/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.0/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.0/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.1.1/.env b/linux/ecosystem/atlassian/crucible/1/1.1.1/.env similarity index 100% rename from linux/atlassian/crucible/1/1.1.1/.env rename to linux/ecosystem/atlassian/crucible/1/1.1.1/.env diff --git a/linux/atlassian/crucible/1/1.1.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1.1/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.1.1/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.1.1/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1.1/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.1/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.1.1/Makefile diff --git a/linux/atlassian/crucible/1/1.1.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.1.1/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.1.1/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.1.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.1.1/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.1.2/.env b/linux/ecosystem/atlassian/crucible/1/1.1.2/.env similarity index 100% rename from linux/atlassian/crucible/1/1.1.2/.env rename to linux/ecosystem/atlassian/crucible/1/1.1.2/.env diff --git a/linux/atlassian/crucible/1/1.1.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1.2/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.1.2/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.1.2/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.2.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1.2/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.2.1/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.1.2/Makefile diff --git a/linux/atlassian/crucible/1/1.1.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.1.2/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.1.2/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.1.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.1.2/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.1.3/.env b/linux/ecosystem/atlassian/crucible/1/1.1.3/.env similarity index 100% rename from linux/atlassian/crucible/1/1.1.3/.env rename to linux/ecosystem/atlassian/crucible/1/1.1.3/.env diff --git a/linux/atlassian/crucible/1/1.1.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1.3/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.1.3/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.1.3/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1.3/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.2/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.1.3/Makefile diff --git a/linux/atlassian/crucible/1/1.1.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1.3/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.1.3/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.1.3/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.1.3/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.1.3/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.1.4/.env b/linux/ecosystem/atlassian/crucible/1/1.1.4/.env similarity index 100% rename from linux/atlassian/crucible/1/1.1.4/.env rename to linux/ecosystem/atlassian/crucible/1/1.1.4/.env diff --git a/linux/atlassian/crucible/1/1.1.4/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1.4/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.1.4/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.1.4/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.3/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1.4/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.3/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.1.4/Makefile diff --git a/linux/atlassian/crucible/1/1.1.4/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1.4/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.1.4/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.1.4/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.1.4/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.1.4/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.1.4/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.1/.env b/linux/ecosystem/atlassian/crucible/1/1.1/.env similarity index 100% rename from linux/atlassian/crucible/1/1.1/.env rename to linux/ecosystem/atlassian/crucible/1/1.1/.env diff --git a/linux/atlassian/crucible/1/1.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.1/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.1/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.1/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.4/Makefile b/linux/ecosystem/atlassian/crucible/1/1.1/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.4/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.1/Makefile diff --git a/linux/atlassian/crucible/1/1.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.1/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.1/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.1/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.1/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.2.1/.env b/linux/ecosystem/atlassian/crucible/1/1.2.1/.env similarity index 100% rename from linux/atlassian/crucible/1/1.2.1/.env rename to linux/ecosystem/atlassian/crucible/1/1.2.1/.env diff --git a/linux/atlassian/crucible/1/1.2.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.2.1/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.2.1/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.2.1/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.5.a/Makefile b/linux/ecosystem/atlassian/crucible/1/1.2.1/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.5.a/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.2.1/Makefile diff --git a/linux/atlassian/crucible/1/1.2.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.2.1/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.2.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.2.1/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.2.2/.env b/linux/ecosystem/atlassian/crucible/1/1.2.2/.env similarity index 100% rename from linux/atlassian/crucible/1/1.2.2/.env rename to linux/ecosystem/atlassian/crucible/1/1.2.2/.env diff --git a/linux/atlassian/crucible/1/1.2.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.2.2/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.2.2/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.2.2/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.5/Makefile b/linux/ecosystem/atlassian/crucible/1/1.2.2/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.5/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.2.2/Makefile diff --git a/linux/atlassian/crucible/1/1.2.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.2.2/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.2.2/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.2.2/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.2.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.2.2/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.2.3/.env b/linux/ecosystem/atlassian/crucible/1/1.2.3/.env similarity index 100% rename from linux/atlassian/crucible/1/1.2.3/.env rename to linux/ecosystem/atlassian/crucible/1/1.2.3/.env diff --git a/linux/atlassian/crucible/1/1.2.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.2.3/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.2.3/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.2.3/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.5a/Makefile b/linux/ecosystem/atlassian/crucible/1/1.2.3/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.5a/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.2.3/Makefile diff --git a/linux/atlassian/crucible/1/1.2.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.2.3/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.2.3/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.2.3/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.2.3/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.2.3/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.2/.env b/linux/ecosystem/atlassian/crucible/1/1.2/.env similarity index 100% rename from linux/atlassian/crucible/1/1.2/.env rename to linux/ecosystem/atlassian/crucible/1/1.2/.env diff --git a/linux/atlassian/crucible/1/1.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.2/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.2/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.2/Dockerfile diff --git a/linux/atlassian/crucible/1/1.6.6/Makefile b/linux/ecosystem/atlassian/crucible/1/1.2/Makefile similarity index 100% rename from linux/atlassian/crucible/1/1.6.6/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.2/Makefile diff --git a/linux/atlassian/crucible/1/1.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.2/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.2/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.2/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.2/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.5.1/.env b/linux/ecosystem/atlassian/crucible/1/1.5.1/.env similarity index 100% rename from linux/atlassian/crucible/1/1.5.1/.env rename to linux/ecosystem/atlassian/crucible/1/1.5.1/.env diff --git a/linux/atlassian/crucible/1/1.5.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5.1/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.5.1/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.5.1/Dockerfile diff --git a/linux/atlassian/crucible/templates/1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5.1/Makefile similarity index 100% rename from linux/atlassian/crucible/templates/1/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.5.1/Makefile diff --git a/linux/atlassian/crucible/1/1.5.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5.1/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.5.1/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.5.1/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.5.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.5.1/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.5.2/.env b/linux/ecosystem/atlassian/crucible/1/1.5.2/.env similarity index 100% rename from linux/atlassian/crucible/1/1.5.2/.env rename to linux/ecosystem/atlassian/crucible/1/1.5.2/.env diff --git a/linux/atlassian/crucible/1/1.5.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5.2/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.5.2/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.5.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.5.2/Makefile diff --git a/linux/atlassian/crucible/1/1.5.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5.2/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.5.2/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.5.2/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.5.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.5.2/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.5.3/.env b/linux/ecosystem/atlassian/crucible/1/1.5.3/.env similarity index 100% rename from linux/atlassian/crucible/1/1.5.3/.env rename to linux/ecosystem/atlassian/crucible/1/1.5.3/.env diff --git a/linux/atlassian/crucible/1/1.5.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5.3/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.5.3/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.5.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.5.3/Makefile diff --git a/linux/atlassian/crucible/1/1.5.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5.3/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.5.3/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.5.3/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.5.3/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5.3/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.5.3/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.5.4/.env b/linux/ecosystem/atlassian/crucible/1/1.5.4/.env similarity index 100% rename from linux/atlassian/crucible/1/1.5.4/.env rename to linux/ecosystem/atlassian/crucible/1/1.5.4/.env diff --git a/linux/atlassian/crucible/1/1.5.4/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5.4/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.5.4/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.5.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.5.4/Makefile diff --git a/linux/atlassian/crucible/1/1.5.4/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5.4/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.5.4/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.5.4/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.5.4/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5.4/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.5.4/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.5.4/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.5/.env b/linux/ecosystem/atlassian/crucible/1/1.5/.env similarity index 100% rename from linux/atlassian/crucible/1/1.5/.env rename to linux/ecosystem/atlassian/crucible/1/1.5/.env diff --git a/linux/atlassian/crucible/1/1.5/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.5/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.5/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile b/linux/ecosystem/atlassian/crucible/1/1.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.5/Makefile diff --git a/linux/atlassian/crucible/1/1.5/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.5/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.5/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.5/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.5/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.5/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.5/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.5/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.0/.env b/linux/ecosystem/atlassian/crucible/1/1.6.0/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.0/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.0/.env diff --git a/linux/atlassian/crucible/1/1.6.0/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.0/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.0/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.0/Makefile diff --git a/linux/atlassian/crucible/1/1.6.0/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.0/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.0/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.0/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.0/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.0/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.0Beta1/.env b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta1/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/.env diff --git a/linux/atlassian/crucible/1/1.6.0Beta1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta1/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.1/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/Makefile diff --git a/linux/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta1/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.0Beta2/.env b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta2/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/.env diff --git a/linux/atlassian/crucible/1/1.6.0Beta2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta2/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.2/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/Makefile diff --git a/linux/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.0Beta2/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.1/.env b/linux/ecosystem/atlassian/crucible/1/1.6.1/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.1/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.1/.env diff --git a/linux/atlassian/crucible/1/1.6.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.1/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.1/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.3/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.3/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.1/Makefile diff --git a/linux/atlassian/crucible/1/1.6.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.1/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.1/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.1/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.1/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.2.1/.env b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.2.1/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.2.1/.env diff --git a/linux/atlassian/crucible/1/1.6.2.1/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.2.1/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.2.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.4/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.4/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.2.1/Makefile diff --git a/linux/atlassian/crucible/1/1.6.2.1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.2.1/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.2.1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.2.1/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.2/.env b/linux/ecosystem/atlassian/crucible/1/1.6.2/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.2/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.2/.env diff --git a/linux/atlassian/crucible/1/1.6.2/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.2/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.2/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.5/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.5/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.2/Makefile diff --git a/linux/atlassian/crucible/1/1.6.2/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.2/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.2/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.2/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.2/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.2/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.2/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.2/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.3/.env b/linux/ecosystem/atlassian/crucible/1/1.6.3/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.3/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.3/.env diff --git a/linux/atlassian/crucible/1/1.6.3/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.3/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.3/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.6/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.6/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.3/Makefile diff --git a/linux/atlassian/crucible/1/1.6.3/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.3/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.3/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.3/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.3/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.3/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.3/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.3/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.4/.env b/linux/ecosystem/atlassian/crucible/1/1.6.4/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.4/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.4/.env diff --git a/linux/atlassian/crucible/1/1.6.4/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.4/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.4/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.4/Makefile diff --git a/linux/atlassian/crucible/1/1.6.4/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.4/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.4/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.4/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.4/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.4/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.4/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.4/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.5.a/.env b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.5.a/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.5.a/.env diff --git a/linux/atlassian/crucible/1/1.6.5.a/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.5.a/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.5.a/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.5.a/Makefile diff --git a/linux/atlassian/crucible/1/1.6.5.a/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.5.a/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.5.a/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.5.a/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.5.a/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.5.a/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.5.a/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.5/.env b/linux/ecosystem/atlassian/crucible/1/1.6.5/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.5/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.5/.env diff --git a/linux/atlassian/crucible/1/1.6.5/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.5/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.5/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.5/Makefile diff --git a/linux/atlassian/crucible/1/1.6.5/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.5/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.5/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.5/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.5/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.5/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.5/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.5/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.5a/.env b/linux/ecosystem/atlassian/crucible/1/1.6.5a/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.5a/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.5a/.env diff --git a/linux/atlassian/crucible/1/1.6.5a/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.5a/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.5a/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.5a/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.1/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.5a/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.1/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.5a/Makefile diff --git a/linux/atlassian/crucible/1/1.6.5a/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.5a/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.5a/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.5a/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.5a/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.5a/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.5a/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.5a/entrypoint.sh diff --git a/linux/atlassian/crucible/1/1.6.6/.env b/linux/ecosystem/atlassian/crucible/1/1.6.6/.env similarity index 100% rename from linux/atlassian/crucible/1/1.6.6/.env rename to linux/ecosystem/atlassian/crucible/1/1.6.6/.env diff --git a/linux/atlassian/crucible/1/1.6.6/Dockerfile b/linux/ecosystem/atlassian/crucible/1/1.6.6/Dockerfile similarity index 100% rename from linux/atlassian/crucible/1/1.6.6/Dockerfile rename to linux/ecosystem/atlassian/crucible/1/1.6.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.2/Makefile b/linux/ecosystem/atlassian/crucible/1/1.6.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.2/Makefile rename to linux/ecosystem/atlassian/crucible/1/1.6.6/Makefile diff --git a/linux/atlassian/crucible/1/1.6.6/docker-compose.yml b/linux/ecosystem/atlassian/crucible/1/1.6.6/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/1/1.6.6/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/1/1.6.6/docker-compose.yml diff --git a/linux/atlassian/crucible/1/1.6.6/entrypoint.sh b/linux/ecosystem/atlassian/crucible/1/1.6.6/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/1/1.6.6/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/1/1.6.6/entrypoint.sh diff --git a/linux/atlassian/crucible/templates/1/Dockerfile b/linux/ecosystem/atlassian/crucible/templates/1/Dockerfile similarity index 100% rename from linux/atlassian/crucible/templates/1/Dockerfile rename to linux/ecosystem/atlassian/crucible/templates/1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.3/Makefile b/linux/ecosystem/atlassian/crucible/templates/1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.3/Makefile rename to linux/ecosystem/atlassian/crucible/templates/1/Makefile diff --git a/linux/atlassian/crucible/templates/1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/templates/1/docker-compose.yml similarity index 100% rename from linux/atlassian/crucible/templates/1/docker-compose.yml rename to linux/ecosystem/atlassian/crucible/templates/1/docker-compose.yml diff --git a/linux/atlassian/crucible/templates/1/entrypoint.sh b/linux/ecosystem/atlassian/crucible/templates/1/entrypoint.sh similarity index 100% rename from linux/atlassian/crucible/templates/1/entrypoint.sh rename to linux/ecosystem/atlassian/crucible/templates/1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.B3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.B3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/Makefile diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.B3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.B3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/Makefile diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/Makefile diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/Makefile diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0.RC3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.7/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.8/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.0.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.0.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.2.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.0.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.2.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/Makefile diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.M2cc/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.RC1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.2.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/Makefile diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.RC1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0.RC1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.1.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.1.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.1.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.1.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.1.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.1.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.1.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.1.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.1.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.10.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.10.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.10.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.10.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.10.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.10.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.7/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.10.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.10.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.8/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.10.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.10.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.10.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.10.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.10.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.10.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.10.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.7/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.10.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.7/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.7/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.10.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.8/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.10.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.8/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.10.8/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.2.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.2.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.2.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.2.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.2.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.2.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.2.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.3.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.3.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.3.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.3.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.3.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.3.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.3.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.3.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.3.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.3.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.3.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.3.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.3.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.3.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.7/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.3.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.7/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.3.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.7/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.8/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.7/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.3.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.8/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.3.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.8/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.9/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.9/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.3.8/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.4.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.4.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.4.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.4.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.4.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.4.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.4.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.4.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.4.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.4.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.4.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.4.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.4.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.4.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.4.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.7/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.8/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.9/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.9/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.7/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.7/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.10/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.10/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.7/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.8/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.8/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.11/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.11/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.8/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.5.9/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.9/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.5.9/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.9/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.12/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.12/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.5.9/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.13/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.13/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.14/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.14/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.15/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.15/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.7/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.7/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.7/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.8/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.8/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.7/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.8/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.6.9/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.9/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.6.9/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.9/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.8/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.6.9/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.9/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.9/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/Makefile diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/docker-compose.yml diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/Makefile diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/docker-compose.yml diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0-EAP-2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.8.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.10/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.10/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.10/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.10/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.8.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.10/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.11/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.11/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.11/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.11/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.9.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.11/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.12/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.12/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.12/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.12/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.9.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.12/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.13/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.13/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.13/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.13/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/2/2.9.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.13/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.14/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.14/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.14/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.14/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.14/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.15/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.15/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.15/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.15/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.15/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.7/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.7/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.7/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.8/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.8/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.8/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.8/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.8/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.7.9/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.9/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.7.9/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.9/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.7.9/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0-m1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0-m1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/Makefile diff --git a/linux/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 similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0-m1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0-m1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.8.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.8.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.7/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.8.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.8.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.10.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.8.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.9.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.9.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.10.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.9.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.9.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.10.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/2/2.9.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/.env diff --git a/linux/atlassian/fisheye-crucible/2/2.9.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.10.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/2/2.9.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.0.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.0.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.0.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.0.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.0.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.0.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.0.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.0.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.0.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.0.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.0.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.1.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.1.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.1.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.1.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.1.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.1.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.1.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.1.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.1.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.1.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.1.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.1.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.1.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.1.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.1.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.7/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.1.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.7/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.1.7/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.10.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.10.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.10.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.10.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.10.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.10.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.10.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.10.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.7/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.10.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.2.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.2.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.2.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.2.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.2.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.2.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.2.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.2.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.2.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.2.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.2.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.2.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.2.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.3.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.3.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.3.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.3.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.3.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.3.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.3.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.3.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.3.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.3.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.3.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.4.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.4.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.7.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.4.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.4.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.7.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.4.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.4.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.8.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.4.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.4.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.8.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.4.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.4.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.9.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.4.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.7/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.4.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.7/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.9.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.4.7/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.5.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.5.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/3/3.9.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.5.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.5.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.0.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.5.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.5.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.0.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.5.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.5.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.0.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.5.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.5.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.1.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.5.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.5.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.1.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.5.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.6.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.6.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.1.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.6.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.6.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.1.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.6.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.6.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.2.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.6.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.6.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.2.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.6.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.6.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.2.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.6.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.7.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.7.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.2.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.7.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.7.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.3.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.7.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.8.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.8.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.3.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.8.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.8.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.3.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.8.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.9.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.9.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.3.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.9.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.9.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/3/3.9.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/.env diff --git a/linux/atlassian/fisheye-crucible/3/3.9.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/3/3.9.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.0.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.0.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.0.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.0.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.0.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.0.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.0.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.1.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.1.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.1.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.1.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.7/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.1.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.1.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.1.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.1.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.1.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.2.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.2.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.2.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.2.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.2.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.2.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.2.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.2.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.6.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.2.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.3.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.3.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.6.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.3.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.3.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.7.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.3.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.3.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.7.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.3.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.3.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.7.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.3.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.4.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.4.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.7.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.4.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.4.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.0/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.0/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.4.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.4.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.4.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.4.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.4.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.4.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.4.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.4.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.4.7/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.7/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.4.7/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.7/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.4.7/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.5.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.5.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.5.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.5.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/latest/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/latest/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.5.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.5.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/templates/2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.5.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.5.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/templates/3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.5.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.5.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Dockerfile diff --git a/linux/atlassian/fisheye-crucible/templates/4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Makefile similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.5.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.6.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.6.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.0.1a/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.0.1a/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.6.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.6.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.1.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.1.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.6.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.7.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.7.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.2.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.2.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.7.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.7.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.3.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.7.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.7.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.3.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.7.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.7.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.3.5/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.5/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.7.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.8.0/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.0/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.8.0/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.3.6/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.6/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.0/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.8.1/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.1/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.8.1/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.3.7/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.7/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.1/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.8.2/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.2/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.8.2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.3.8/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.8/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.8.3/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.3/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.8.3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.4.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.4.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.8.4/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.4/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.8.4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.4.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.4.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.4/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.8.5/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.5/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.8.5/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.4.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.4.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.5/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/4/4.8.6/.env b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.6/.env rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/.env diff --git a/linux/atlassian/fisheye-crucible/4/4.8.6/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/Makefile diff --git a/linux/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/4/4.8.6/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/README.md b/linux/ecosystem/atlassian/fisheye-crucible/README.md similarity index 100% rename from linux/atlassian/fisheye-crucible/README.md rename to linux/ecosystem/atlassian/fisheye-crucible/README.md diff --git a/linux/atlassian/fisheye-crucible/latest/.env b/linux/ecosystem/atlassian/fisheye-crucible/latest/.env similarity index 100% rename from linux/atlassian/fisheye-crucible/latest/.env rename to linux/ecosystem/atlassian/fisheye-crucible/latest/.env diff --git a/linux/atlassian/fisheye-crucible/latest/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/latest/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/latest/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/latest/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.5.1/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/latest/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.5.1/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/latest/Makefile diff --git a/linux/atlassian/fisheye-crucible/latest/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/latest/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/latest/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/latest/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/latest/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/latest/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/latest/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/latest/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/templates/2/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/2/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/templates/2/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.5.2/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.5.2/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/templates/2/Makefile diff --git a/linux/atlassian/fisheye-crucible/templates/2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/templates/2/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/templates/2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/templates/2/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/templates/3/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/3/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/templates/3/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.5.3/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.5.3/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/templates/3/Makefile diff --git a/linux/atlassian/fisheye-crucible/templates/3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/templates/3/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/templates/3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/templates/3/entrypoint.sh diff --git a/linux/atlassian/fisheye-crucible/templates/4/Dockerfile b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/4/Dockerfile rename to linux/ecosystem/atlassian/fisheye-crucible/templates/4/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.5.4/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.5.4/Makefile rename to linux/ecosystem/atlassian/fisheye-crucible/templates/4/Makefile diff --git a/linux/atlassian/fisheye-crucible/templates/4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye-crucible/templates/4/docker-compose.yml diff --git a/linux/atlassian/fisheye-crucible/templates/4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye-crucible/templates/4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye-crucible/templates/4/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.0.1a/.env b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.0.1a/.env rename to linux/ecosystem/atlassian/fisheye/1/1.0.1a/.env diff --git a/linux/atlassian/fisheye/1/1.0.1a/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.0.1a/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.0.1a/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.5/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.5/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.0.1a/Makefile diff --git a/linux/atlassian/fisheye/1/1.0.1a/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.0.1a/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.0.1a/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.0.1a/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.0.1a/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.0.1a/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.0.1a/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.1.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.1.3/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.1.3/.env rename to linux/ecosystem/atlassian/fisheye/1/1.1.3/.env diff --git a/linux/atlassian/fisheye/1/1.1.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.1.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.1.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.1.3/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.0/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.1.3/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.1.3/Makefile diff --git a/linux/atlassian/fisheye/1/1.1.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.1.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.1.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.1.3/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.1.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.1.3/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.2.5/.env b/linux/ecosystem/atlassian/fisheye/1/1.2.5/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.2.5/.env rename to linux/ecosystem/atlassian/fisheye/1/1.2.5/.env diff --git a/linux/atlassian/fisheye/1/1.2.5/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.2.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.2.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.2.5/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.0Beta1/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.2.5/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta1/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.2.5/Makefile diff --git a/linux/atlassian/fisheye/1/1.2.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.2.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.2.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.2.5/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.2.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.2.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.2.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.2.5/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.3.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.3/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.3.3/.env rename to linux/ecosystem/atlassian/fisheye/1/1.3.3/.env diff --git a/linux/atlassian/fisheye/1/1.3.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.3.3/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.0Beta2/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.3/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta2/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.3.3/Makefile diff --git a/linux/atlassian/fisheye/1/1.3.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.3.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.3.3/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.3.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.3.3/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.3.4/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.4/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.3.4/.env rename to linux/ecosystem/atlassian/fisheye/1/1.3.4/.env diff --git a/linux/atlassian/fisheye/1/1.3.4/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.3.4/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.1/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.4/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.1/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.3.4/Makefile diff --git a/linux/atlassian/fisheye/1/1.3.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.3.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.3.4/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.3.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.3.4/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.3.5/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.5/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.3.5/.env rename to linux/ecosystem/atlassian/fisheye/1/1.3.5/.env diff --git a/linux/atlassian/fisheye/1/1.3.5/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.3.5/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.3/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.5/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.3/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.3.5/Makefile diff --git a/linux/atlassian/fisheye/1/1.3.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.3.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.3.5/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.3.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.3.5/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.3.6/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.6/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.3.6/.env rename to linux/ecosystem/atlassian/fisheye/1/1.3.6/.env diff --git a/linux/atlassian/fisheye/1/1.3.6/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.3.6/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.4/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.6/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.4/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.3.6/Makefile diff --git a/linux/atlassian/fisheye/1/1.3.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.3.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.3.6/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.3.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.3.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.3.6/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.3.7/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.7/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.3.7/.env rename to linux/ecosystem/atlassian/fisheye/1/1.3.7/.env diff --git a/linux/atlassian/fisheye/1/1.3.7/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.7/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.7/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.3.7/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.5.a/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.7/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5.a/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.3.7/Makefile diff --git a/linux/atlassian/fisheye/1/1.3.7/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.7/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.3.7/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.3.7/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.3.7/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.7/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.3.7/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.3.7/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.3.8/.env b/linux/ecosystem/atlassian/fisheye/1/1.3.8/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.3.8/.env rename to linux/ecosystem/atlassian/fisheye/1/1.3.8/.env diff --git a/linux/atlassian/fisheye/1/1.3.8/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.3.8/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.3.8/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.3.8/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.5/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.3.8/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.3.8/Makefile diff --git a/linux/atlassian/fisheye/1/1.3.8/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.3.8/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.3.8/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.3.8/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.3.8/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.3.8/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.3.8/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.3.8/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.4.1/.env b/linux/ecosystem/atlassian/fisheye/1/1.4.1/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.4.1/.env rename to linux/ecosystem/atlassian/fisheye/1/1.4.1/.env diff --git a/linux/atlassian/fisheye/1/1.4.1/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.4.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.4.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.4.1/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.5a/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.4.1/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5a/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.4.1/Makefile diff --git a/linux/atlassian/fisheye/1/1.4.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.4.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.4.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.4.1/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.4.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.4.1/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.4.2/.env b/linux/ecosystem/atlassian/fisheye/1/1.4.2/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.4.2/.env rename to linux/ecosystem/atlassian/fisheye/1/1.4.2/.env diff --git a/linux/atlassian/fisheye/1/1.4.2/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.4.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.4.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.4.2/Dockerfile diff --git a/linux/atlassian/fisheye/1/1.6.6/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.4.2/Makefile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.6/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.4.2/Makefile diff --git a/linux/atlassian/fisheye/1/1.4.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.4.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.4.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.4.2/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.4.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.4.2/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.4.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.4.3/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.4.3/.env rename to linux/ecosystem/atlassian/fisheye/1/1.4.3/.env diff --git a/linux/atlassian/fisheye/1/1.4.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.4.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.4.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.4.3/Dockerfile diff --git a/linux/atlassian/fisheye/templates/1/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.4.3/Makefile similarity index 100% rename from linux/atlassian/fisheye/templates/1/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.4.3/Makefile diff --git a/linux/atlassian/fisheye/1/1.4.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.4.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.4.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.4.3/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.4.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.4.3/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.4/.env b/linux/ecosystem/atlassian/fisheye/1/1.4/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.4/.env rename to linux/ecosystem/atlassian/fisheye/1/1.4/.env diff --git a/linux/atlassian/fisheye/1/1.4/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.4/Dockerfile diff --git a/linux/atlassian/jira/5/5.0.1/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.4/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.0.1/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.4/Makefile diff --git a/linux/atlassian/fisheye/1/1.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.4/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.4/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.5.1/.env b/linux/ecosystem/atlassian/fisheye/1/1.5.1/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.5.1/.env rename to linux/ecosystem/atlassian/fisheye/1/1.5.1/.env diff --git a/linux/atlassian/fisheye/1/1.5.1/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.5.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.5.1/Dockerfile diff --git a/linux/atlassian/jira/5/5.0.2/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5.1/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.0.2/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.5.1/Makefile diff --git a/linux/atlassian/fisheye/1/1.5.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.5.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.5.1/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.5.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.5.1/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.5.2/.env b/linux/ecosystem/atlassian/fisheye/1/1.5.2/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.5.2/.env rename to linux/ecosystem/atlassian/fisheye/1/1.5.2/.env diff --git a/linux/atlassian/fisheye/1/1.5.2/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5.2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.5.2/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.5.2/Dockerfile diff --git a/linux/atlassian/jira/5/5.0.3/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5.2/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.0.3/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.5.2/Makefile diff --git a/linux/atlassian/fisheye/1/1.5.2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5.2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.5.2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.5.2/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.5.2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.5.2/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.5.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.5.3/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.5.3/.env rename to linux/ecosystem/atlassian/fisheye/1/1.5.3/.env diff --git a/linux/atlassian/fisheye/1/1.5.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.5.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.5.3/Dockerfile diff --git a/linux/atlassian/jira/5/5.0.4/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5.3/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.0.4/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.5.3/Makefile diff --git a/linux/atlassian/fisheye/1/1.5.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.5.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.5.3/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.5.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.5.3/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.5.4/.env b/linux/ecosystem/atlassian/fisheye/1/1.5.4/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.5.4/.env rename to linux/ecosystem/atlassian/fisheye/1/1.5.4/.env diff --git a/linux/atlassian/fisheye/1/1.5.4/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.5.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.5.4/Dockerfile diff --git a/linux/atlassian/jira/5/5.0.5/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5.4/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.0.5/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.5.4/Makefile diff --git a/linux/atlassian/fisheye/1/1.5.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.5.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.5.4/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.5.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.5.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.5.4/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.5/.env b/linux/ecosystem/atlassian/fisheye/1/1.5/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.5/.env rename to linux/ecosystem/atlassian/fisheye/1/1.5/.env diff --git a/linux/atlassian/fisheye/1/1.5/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.5/Dockerfile diff --git a/linux/atlassian/jira/5/5.0.6/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.5/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.0.6/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.5/Makefile diff --git a/linux/atlassian/fisheye/1/1.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.5/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.5/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.0/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.0/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.0/.env diff --git a/linux/atlassian/fisheye/1/1.6.0/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.0/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.0/Dockerfile diff --git a/linux/atlassian/jira/5/5.0.7/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.0/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.0.7/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.0/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.0/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.0/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.0/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.0/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.0/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.0Beta1/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta1/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/.env diff --git a/linux/atlassian/fisheye/1/1.6.0Beta1/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta1/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Dockerfile diff --git a/linux/atlassian/jira/5/5.0/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.0/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta1/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.0Beta2/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta2/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/.env diff --git a/linux/atlassian/fisheye/1/1.6.0Beta2/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta2/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Dockerfile diff --git a/linux/atlassian/jira/5/5.1.1/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.1.1/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.0Beta2/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.1/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.1/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.1/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.1/.env diff --git a/linux/atlassian/fisheye/1/1.6.1/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.1/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.1/Dockerfile diff --git a/linux/atlassian/jira/5/5.1.2/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.1/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.1.2/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.1/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.1/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.1/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.3/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.3/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.3/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.3/.env diff --git a/linux/atlassian/fisheye/1/1.6.3/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.3/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.3/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.3/Dockerfile diff --git a/linux/atlassian/jira/5/5.1.3/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.3/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.1.3/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.3/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.3/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.3/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.3/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.3/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.3/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.3/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.3/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.3/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.4/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.4/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.4/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.4/.env diff --git a/linux/atlassian/fisheye/1/1.6.4/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.4/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.4/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.4/Dockerfile diff --git a/linux/atlassian/jira/5/5.1.4/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.4/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.1.4/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.4/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.4/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.4/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.4/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.4/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.4/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.4/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.4/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.4/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.5.a/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5.a/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.5.a/.env diff --git a/linux/atlassian/fisheye/1/1.6.5.a/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5.a/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Dockerfile diff --git a/linux/atlassian/jira/5/5.1.5/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.1.5/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.5.a/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.5.a/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5.a/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.5.a/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.5.a/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.5.a/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5.a/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.5.a/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.5/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.5/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.5/.env diff --git a/linux/atlassian/fisheye/1/1.6.5/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.5/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.5/Dockerfile diff --git a/linux/atlassian/jira/5/5.1.6/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.5/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.1.6/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.5/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.5/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.5/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.5/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.5/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.5/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.5/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.5a/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5a/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.5a/.env diff --git a/linux/atlassian/fisheye/1/1.6.5a/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5a/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.5a/Dockerfile diff --git a/linux/atlassian/jira/5/5.1.7/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.1.7/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.5a/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.5a/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5a/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.5a/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.5a/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.5a/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.5a/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.5a/entrypoint.sh diff --git a/linux/atlassian/fisheye/1/1.6.6/.env b/linux/ecosystem/atlassian/fisheye/1/1.6.6/.env similarity index 100% rename from linux/atlassian/fisheye/1/1.6.6/.env rename to linux/ecosystem/atlassian/fisheye/1/1.6.6/.env diff --git a/linux/atlassian/fisheye/1/1.6.6/Dockerfile b/linux/ecosystem/atlassian/fisheye/1/1.6.6/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/1/1.6.6/Dockerfile rename to linux/ecosystem/atlassian/fisheye/1/1.6.6/Dockerfile diff --git a/linux/atlassian/jira/5/5.1.8/Makefile b/linux/ecosystem/atlassian/fisheye/1/1.6.6/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.1.8/Makefile rename to linux/ecosystem/atlassian/fisheye/1/1.6.6/Makefile diff --git a/linux/atlassian/fisheye/1/1.6.6/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/1/1.6.6/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/1/1.6.6/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/1/1.6.6/docker-compose.yml diff --git a/linux/atlassian/fisheye/1/1.6.6/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/1/1.6.6/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/1/1.6.6/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/1/1.6.6/entrypoint.sh diff --git a/linux/atlassian/fisheye/templates/1/Dockerfile b/linux/ecosystem/atlassian/fisheye/templates/1/Dockerfile similarity index 100% rename from linux/atlassian/fisheye/templates/1/Dockerfile rename to linux/ecosystem/atlassian/fisheye/templates/1/Dockerfile diff --git a/linux/atlassian/jira/5/5.1/Makefile b/linux/ecosystem/atlassian/fisheye/templates/1/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.1/Makefile rename to linux/ecosystem/atlassian/fisheye/templates/1/Makefile diff --git a/linux/atlassian/fisheye/templates/1/docker-compose.yml b/linux/ecosystem/atlassian/fisheye/templates/1/docker-compose.yml similarity index 100% rename from linux/atlassian/fisheye/templates/1/docker-compose.yml rename to linux/ecosystem/atlassian/fisheye/templates/1/docker-compose.yml diff --git a/linux/atlassian/fisheye/templates/1/entrypoint.sh b/linux/ecosystem/atlassian/fisheye/templates/1/entrypoint.sh similarity index 100% rename from linux/atlassian/fisheye/templates/1/entrypoint.sh rename to linux/ecosystem/atlassian/fisheye/templates/1/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.0.1/.env b/linux/ecosystem/atlassian/jira/5/5.0.1/.env similarity index 100% rename from linux/atlassian/jira/5/5.0.1/.env rename to linux/ecosystem/atlassian/jira/5/5.0.1/.env diff --git a/linux/atlassian/jira/5/5.0.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.0.1/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.0.1/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.1/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.1/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.1/Makefile rename to linux/ecosystem/atlassian/jira/5/5.0.1/Makefile diff --git a/linux/atlassian/jira/5/5.0.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.0.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.0.1/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.0.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.0.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.1/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.0.2/.env b/linux/ecosystem/atlassian/jira/5/5.0.2/.env similarity index 100% rename from linux/atlassian/jira/5/5.0.2/.env rename to linux/ecosystem/atlassian/jira/5/5.0.2/.env diff --git a/linux/atlassian/jira/5/5.0.2/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.0.2/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.0.2/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.10/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.2/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.10/Makefile rename to linux/ecosystem/atlassian/jira/5/5.0.2/Makefile diff --git a/linux/atlassian/jira/5/5.0.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.0.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.0.2/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.0.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.2/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.0.3/.env b/linux/ecosystem/atlassian/jira/5/5.0.3/.env similarity index 100% rename from linux/atlassian/jira/5/5.0.3/.env rename to linux/ecosystem/atlassian/jira/5/5.0.3/.env diff --git a/linux/atlassian/jira/5/5.0.3/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.0.3/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.0.3/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.11/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.3/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.11/Makefile rename to linux/ecosystem/atlassian/jira/5/5.0.3/Makefile diff --git a/linux/atlassian/jira/5/5.0.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.0.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.0.3/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.0.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.3/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.0.4/.env b/linux/ecosystem/atlassian/jira/5/5.0.4/.env similarity index 100% rename from linux/atlassian/jira/5/5.0.4/.env rename to linux/ecosystem/atlassian/jira/5/5.0.4/.env diff --git a/linux/atlassian/jira/5/5.0.4/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.0.4/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.0.4/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.2/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.4/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.2/Makefile rename to linux/ecosystem/atlassian/jira/5/5.0.4/Makefile diff --git a/linux/atlassian/jira/5/5.0.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.0.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.0.4/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.0.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.4/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.0.5/.env b/linux/ecosystem/atlassian/jira/5/5.0.5/.env similarity index 100% rename from linux/atlassian/jira/5/5.0.5/.env rename to linux/ecosystem/atlassian/jira/5/5.0.5/.env diff --git a/linux/atlassian/jira/5/5.0.5/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.0.5/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.0.5/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.3/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.5/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.3/Makefile rename to linux/ecosystem/atlassian/jira/5/5.0.5/Makefile diff --git a/linux/atlassian/jira/5/5.0.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.0.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.0.5/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.0.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.0.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.5/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.0.6/.env b/linux/ecosystem/atlassian/jira/5/5.0.6/.env similarity index 100% rename from linux/atlassian/jira/5/5.0.6/.env rename to linux/ecosystem/atlassian/jira/5/5.0.6/.env diff --git a/linux/atlassian/jira/5/5.0.6/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.0.6/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.0.6/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.4.1/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.6/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.4.1/Makefile rename to linux/ecosystem/atlassian/jira/5/5.0.6/Makefile diff --git a/linux/atlassian/jira/5/5.0.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.0.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.0.6/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.0.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.0.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.6/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.0.7/.env b/linux/ecosystem/atlassian/jira/5/5.0.7/.env similarity index 100% rename from linux/atlassian/jira/5/5.0.7/.env rename to linux/ecosystem/atlassian/jira/5/5.0.7/.env diff --git a/linux/atlassian/jira/5/5.0.7/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.0.7/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.0.7/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.4/Makefile b/linux/ecosystem/atlassian/jira/5/5.0.7/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.4/Makefile rename to linux/ecosystem/atlassian/jira/5/5.0.7/Makefile diff --git a/linux/atlassian/jira/5/5.0.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.0.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.0.7/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.0.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.0.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0.7/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.0/.env b/linux/ecosystem/atlassian/jira/5/5.0/.env similarity index 100% rename from linux/atlassian/jira/5/5.0/.env rename to linux/ecosystem/atlassian/jira/5/5.0/.env diff --git a/linux/atlassian/jira/5/5.0/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.0/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.0/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.5/Makefile b/linux/ecosystem/atlassian/jira/5/5.0/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.5/Makefile rename to linux/ecosystem/atlassian/jira/5/5.0/Makefile diff --git a/linux/atlassian/jira/5/5.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.0/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.0/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.1.1/.env b/linux/ecosystem/atlassian/jira/5/5.1.1/.env similarity index 100% rename from linux/atlassian/jira/5/5.1.1/.env rename to linux/ecosystem/atlassian/jira/5/5.1.1/.env diff --git a/linux/atlassian/jira/5/5.1.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.1.1/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.1.1/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.6/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.1/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.6/Makefile rename to linux/ecosystem/atlassian/jira/5/5.1.1/Makefile diff --git a/linux/atlassian/jira/5/5.1.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.1.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.1.1/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.1.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.1/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.1.2/.env b/linux/ecosystem/atlassian/jira/5/5.1.2/.env similarity index 100% rename from linux/atlassian/jira/5/5.1.2/.env rename to linux/ecosystem/atlassian/jira/5/5.1.2/.env diff --git a/linux/atlassian/jira/5/5.1.2/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.1.2/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.1.2/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.7/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.2/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.7/Makefile rename to linux/ecosystem/atlassian/jira/5/5.1.2/Makefile diff --git a/linux/atlassian/jira/5/5.1.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.1.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.1.2/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.1.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.2/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.1.3/.env b/linux/ecosystem/atlassian/jira/5/5.1.3/.env similarity index 100% rename from linux/atlassian/jira/5/5.1.3/.env rename to linux/ecosystem/atlassian/jira/5/5.1.3/.env diff --git a/linux/atlassian/jira/5/5.1.3/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.1.3/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.1.3/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.8/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.3/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.8/Makefile rename to linux/ecosystem/atlassian/jira/5/5.1.3/Makefile diff --git a/linux/atlassian/jira/5/5.1.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.1.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.1.3/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.1.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.3/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.1.4/.env b/linux/ecosystem/atlassian/jira/5/5.1.4/.env similarity index 100% rename from linux/atlassian/jira/5/5.1.4/.env rename to linux/ecosystem/atlassian/jira/5/5.1.4/.env diff --git a/linux/atlassian/jira/5/5.1.4/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.1.4/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.1.4/Dockerfile diff --git a/linux/atlassian/jira/5/5.2.9/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.4/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2.9/Makefile rename to linux/ecosystem/atlassian/jira/5/5.1.4/Makefile diff --git a/linux/atlassian/jira/5/5.1.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.1.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.1.4/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.1.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.1.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.4/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.1.5/.env b/linux/ecosystem/atlassian/jira/5/5.1.5/.env similarity index 100% rename from linux/atlassian/jira/5/5.1.5/.env rename to linux/ecosystem/atlassian/jira/5/5.1.5/.env diff --git a/linux/atlassian/jira/5/5.1.5/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.1.5/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.1.5/Dockerfile diff --git a/linux/atlassian/jira/5/5.2/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.5/Makefile similarity index 100% rename from linux/atlassian/jira/5/5.2/Makefile rename to linux/ecosystem/atlassian/jira/5/5.1.5/Makefile diff --git a/linux/atlassian/jira/5/5.1.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.1.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.1.5/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.1.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.1.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.5/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.1.6/.env b/linux/ecosystem/atlassian/jira/5/5.1.6/.env similarity index 100% rename from linux/atlassian/jira/5/5.1.6/.env rename to linux/ecosystem/atlassian/jira/5/5.1.6/.env diff --git a/linux/atlassian/jira/5/5.1.6/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.1.6/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.1.6/Dockerfile diff --git a/linux/atlassian/jira/6/6.0.1/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.6/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.0.1/Makefile rename to linux/ecosystem/atlassian/jira/5/5.1.6/Makefile diff --git a/linux/atlassian/jira/5/5.1.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.1.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.1.6/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.1.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.1.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.6/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.1.7/.env b/linux/ecosystem/atlassian/jira/5/5.1.7/.env similarity index 100% rename from linux/atlassian/jira/5/5.1.7/.env rename to linux/ecosystem/atlassian/jira/5/5.1.7/.env diff --git a/linux/atlassian/jira/5/5.1.7/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.1.7/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.1.7/Dockerfile diff --git a/linux/atlassian/jira/6/6.0.2/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.7/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.0.2/Makefile rename to linux/ecosystem/atlassian/jira/5/5.1.7/Makefile diff --git a/linux/atlassian/jira/5/5.1.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.1.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.1.7/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.1.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.1.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.7/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.1.8/.env b/linux/ecosystem/atlassian/jira/5/5.1.8/.env similarity index 100% rename from linux/atlassian/jira/5/5.1.8/.env rename to linux/ecosystem/atlassian/jira/5/5.1.8/.env diff --git a/linux/atlassian/jira/5/5.1.8/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.1.8/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.1.8/Dockerfile diff --git a/linux/atlassian/jira/6/6.0.3/Makefile b/linux/ecosystem/atlassian/jira/5/5.1.8/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.0.3/Makefile rename to linux/ecosystem/atlassian/jira/5/5.1.8/Makefile diff --git a/linux/atlassian/jira/5/5.1.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.1.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.1.8/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.1.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.1.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1.8/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.1/.env b/linux/ecosystem/atlassian/jira/5/5.1/.env similarity index 100% rename from linux/atlassian/jira/5/5.1/.env rename to linux/ecosystem/atlassian/jira/5/5.1/.env diff --git a/linux/atlassian/jira/5/5.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.1/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.1/Dockerfile diff --git a/linux/atlassian/jira/6/6.0.4/Makefile b/linux/ecosystem/atlassian/jira/5/5.1/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.0.4/Makefile rename to linux/ecosystem/atlassian/jira/5/5.1/Makefile diff --git a/linux/atlassian/jira/5/5.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.1/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.1/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.1/.env b/linux/ecosystem/atlassian/jira/5/5.2.1/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.1/.env rename to linux/ecosystem/atlassian/jira/5/5.2.1/.env diff --git a/linux/atlassian/jira/5/5.2.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.1/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.1/Dockerfile diff --git a/linux/atlassian/jira/6/6.0.5/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.1/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.0.5/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.1/Makefile diff --git a/linux/atlassian/jira/5/5.2.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.1/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.1/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.10/.env b/linux/ecosystem/atlassian/jira/5/5.2.10/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.10/.env rename to linux/ecosystem/atlassian/jira/5/5.2.10/.env diff --git a/linux/atlassian/jira/5/5.2.10/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.10/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.10/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.10/Dockerfile diff --git a/linux/atlassian/jira/6/6.0.6/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.10/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.0.6/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.10/Makefile diff --git a/linux/atlassian/jira/5/5.2.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.10/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.10/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.10/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.10/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.11/.env b/linux/ecosystem/atlassian/jira/5/5.2.11/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.11/.env rename to linux/ecosystem/atlassian/jira/5/5.2.11/.env diff --git a/linux/atlassian/jira/5/5.2.11/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.11/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.11/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.11/Dockerfile diff --git a/linux/atlassian/jira/6/6.0.7/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.11/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.0.7/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.11/Makefile diff --git a/linux/atlassian/jira/5/5.2.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.11/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.11/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.11/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.11/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.2/.env b/linux/ecosystem/atlassian/jira/5/5.2.2/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.2/.env rename to linux/ecosystem/atlassian/jira/5/5.2.2/.env diff --git a/linux/atlassian/jira/5/5.2.2/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.2/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.2/Dockerfile diff --git a/linux/atlassian/jira/6/6.0.8/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.2/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.0.8/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.2/Makefile diff --git a/linux/atlassian/jira/5/5.2.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.2/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.2/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.3/.env b/linux/ecosystem/atlassian/jira/5/5.2.3/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.3/.env rename to linux/ecosystem/atlassian/jira/5/5.2.3/.env diff --git a/linux/atlassian/jira/5/5.2.3/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.3/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.3/Dockerfile diff --git a/linux/atlassian/jira/6/6.0/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.3/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.0/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.3/Makefile diff --git a/linux/atlassian/jira/5/5.2.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.3/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.3/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.4.1/.env b/linux/ecosystem/atlassian/jira/5/5.2.4.1/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.4.1/.env rename to linux/ecosystem/atlassian/jira/5/5.2.4.1/.env diff --git a/linux/atlassian/jira/5/5.2.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.4.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.4.1/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.4.1/Dockerfile diff --git a/linux/atlassian/jira/6/6.1.1/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.4.1/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1.1/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.4.1/Makefile diff --git a/linux/atlassian/jira/5/5.2.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.4.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.4.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.4.1/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.4.1/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.4/.env b/linux/ecosystem/atlassian/jira/5/5.2.4/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.4/.env rename to linux/ecosystem/atlassian/jira/5/5.2.4/.env diff --git a/linux/atlassian/jira/5/5.2.4/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.4/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.4/Dockerfile diff --git a/linux/atlassian/jira/6/6.1.2/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.4/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1.2/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.4/Makefile diff --git a/linux/atlassian/jira/5/5.2.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.4/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.4/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.5/.env b/linux/ecosystem/atlassian/jira/5/5.2.5/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.5/.env rename to linux/ecosystem/atlassian/jira/5/5.2.5/.env diff --git a/linux/atlassian/jira/5/5.2.5/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.5/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.5/Dockerfile diff --git a/linux/atlassian/jira/6/6.1.3/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.5/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1.3/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.5/Makefile diff --git a/linux/atlassian/jira/5/5.2.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.5/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.5/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.6/.env b/linux/ecosystem/atlassian/jira/5/5.2.6/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.6/.env rename to linux/ecosystem/atlassian/jira/5/5.2.6/.env diff --git a/linux/atlassian/jira/5/5.2.6/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.6/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.6/Dockerfile diff --git a/linux/atlassian/jira/6/6.1.4/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.6/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1.4/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.6/Makefile diff --git a/linux/atlassian/jira/5/5.2.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.6/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.6/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.7/.env b/linux/ecosystem/atlassian/jira/5/5.2.7/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.7/.env rename to linux/ecosystem/atlassian/jira/5/5.2.7/.env diff --git a/linux/atlassian/jira/5/5.2.7/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.7/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.7/Dockerfile diff --git a/linux/atlassian/jira/6/6.1.5/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.7/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1.5/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.7/Makefile diff --git a/linux/atlassian/jira/5/5.2.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.7/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.7/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.8/.env b/linux/ecosystem/atlassian/jira/5/5.2.8/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.8/.env rename to linux/ecosystem/atlassian/jira/5/5.2.8/.env diff --git a/linux/atlassian/jira/5/5.2.8/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.8/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.8/Dockerfile diff --git a/linux/atlassian/jira/6/6.1.6/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.8/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1.6/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.8/Makefile diff --git a/linux/atlassian/jira/5/5.2.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.8/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.8/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2.9/.env b/linux/ecosystem/atlassian/jira/5/5.2.9/.env similarity index 100% rename from linux/atlassian/jira/5/5.2.9/.env rename to linux/ecosystem/atlassian/jira/5/5.2.9/.env diff --git a/linux/atlassian/jira/5/5.2.9/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2.9/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2.9/Dockerfile diff --git a/linux/atlassian/jira/6/6.1.7/Makefile b/linux/ecosystem/atlassian/jira/5/5.2.9/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1.7/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2.9/Makefile diff --git a/linux/atlassian/jira/5/5.2.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2.9/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2.9/entrypoint.sh diff --git a/linux/atlassian/jira/5/5.2/.env b/linux/ecosystem/atlassian/jira/5/5.2/.env similarity index 100% rename from linux/atlassian/jira/5/5.2/.env rename to linux/ecosystem/atlassian/jira/5/5.2/.env diff --git a/linux/atlassian/jira/5/5.2/Dockerfile b/linux/ecosystem/atlassian/jira/5/5.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/5/5.2/Dockerfile rename to linux/ecosystem/atlassian/jira/5/5.2/Dockerfile diff --git a/linux/atlassian/jira/6/6.1.8/Makefile b/linux/ecosystem/atlassian/jira/5/5.2/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1.8/Makefile rename to linux/ecosystem/atlassian/jira/5/5.2/Makefile diff --git a/linux/atlassian/jira/5/5.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/5/5.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/5/5.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/5/5.2/docker-compose.yml diff --git a/linux/atlassian/jira/5/5.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/5/5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/5/5.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/5/5.2/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.0.1/.env b/linux/ecosystem/atlassian/jira/6/6.0.1/.env similarity index 100% rename from linux/atlassian/jira/6/6.0.1/.env rename to linux/ecosystem/atlassian/jira/6/6.0.1/.env diff --git a/linux/atlassian/jira/6/6.0.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.0.1/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.0.1/Dockerfile diff --git a/linux/atlassian/jira/6/6.1.9/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.1/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1.9/Makefile rename to linux/ecosystem/atlassian/jira/6/6.0.1/Makefile diff --git a/linux/atlassian/jira/6/6.0.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.0.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.0.1/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.0.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.1/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.0.2/.env b/linux/ecosystem/atlassian/jira/6/6.0.2/.env similarity index 100% rename from linux/atlassian/jira/6/6.0.2/.env rename to linux/ecosystem/atlassian/jira/6/6.0.2/.env diff --git a/linux/atlassian/jira/6/6.0.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.0.2/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.0.2/Dockerfile diff --git a/linux/atlassian/jira/6/6.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.2/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.1/Makefile rename to linux/ecosystem/atlassian/jira/6/6.0.2/Makefile diff --git a/linux/atlassian/jira/6/6.0.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.0.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.0.2/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.2/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.0.3/.env b/linux/ecosystem/atlassian/jira/6/6.0.3/.env similarity index 100% rename from linux/atlassian/jira/6/6.0.3/.env rename to linux/ecosystem/atlassian/jira/6/6.0.3/.env diff --git a/linux/atlassian/jira/6/6.0.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.0.3/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.0.3/Dockerfile diff --git a/linux/atlassian/jira/6/6.2.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.3/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.2.1/Makefile rename to linux/ecosystem/atlassian/jira/6/6.0.3/Makefile diff --git a/linux/atlassian/jira/6/6.0.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.0.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.0.3/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.3/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.0.4/.env b/linux/ecosystem/atlassian/jira/6/6.0.4/.env similarity index 100% rename from linux/atlassian/jira/6/6.0.4/.env rename to linux/ecosystem/atlassian/jira/6/6.0.4/.env diff --git a/linux/atlassian/jira/6/6.0.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.0.4/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.0.4/Dockerfile diff --git a/linux/atlassian/jira/6/6.2.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.4/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.2.2/Makefile rename to linux/ecosystem/atlassian/jira/6/6.0.4/Makefile diff --git a/linux/atlassian/jira/6/6.0.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.0.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.0.4/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.4/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.0.5/.env b/linux/ecosystem/atlassian/jira/6/6.0.5/.env similarity index 100% rename from linux/atlassian/jira/6/6.0.5/.env rename to linux/ecosystem/atlassian/jira/6/6.0.5/.env diff --git a/linux/atlassian/jira/6/6.0.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.0.5/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.0.5/Dockerfile diff --git a/linux/atlassian/jira/6/6.2.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.5/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.2.3/Makefile rename to linux/ecosystem/atlassian/jira/6/6.0.5/Makefile diff --git a/linux/atlassian/jira/6/6.0.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.0.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.0.5/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.0.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.5/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.0.6/.env b/linux/ecosystem/atlassian/jira/6/6.0.6/.env similarity index 100% rename from linux/atlassian/jira/6/6.0.6/.env rename to linux/ecosystem/atlassian/jira/6/6.0.6/.env diff --git a/linux/atlassian/jira/6/6.0.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.0.6/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.0.6/Dockerfile diff --git a/linux/atlassian/jira/6/6.2.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.6/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.2.4/Makefile rename to linux/ecosystem/atlassian/jira/6/6.0.6/Makefile diff --git a/linux/atlassian/jira/6/6.0.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.0.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.0.6/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.0.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.6/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.0.7/.env b/linux/ecosystem/atlassian/jira/6/6.0.7/.env similarity index 100% rename from linux/atlassian/jira/6/6.0.7/.env rename to linux/ecosystem/atlassian/jira/6/6.0.7/.env diff --git a/linux/atlassian/jira/6/6.0.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.0.7/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.0.7/Dockerfile diff --git a/linux/atlassian/jira/6/6.2.5/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.7/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.2.5/Makefile rename to linux/ecosystem/atlassian/jira/6/6.0.7/Makefile diff --git a/linux/atlassian/jira/6/6.0.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.0.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.0.7/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.0.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.7/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.0.8/.env b/linux/ecosystem/atlassian/jira/6/6.0.8/.env similarity index 100% rename from linux/atlassian/jira/6/6.0.8/.env rename to linux/ecosystem/atlassian/jira/6/6.0.8/.env diff --git a/linux/atlassian/jira/6/6.0.8/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.0.8/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.0.8/Dockerfile diff --git a/linux/atlassian/jira/6/6.2.6/Makefile b/linux/ecosystem/atlassian/jira/6/6.0.8/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.2.6/Makefile rename to linux/ecosystem/atlassian/jira/6/6.0.8/Makefile diff --git a/linux/atlassian/jira/6/6.0.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.0.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.0.8/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.0.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0.8/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.0/.env b/linux/ecosystem/atlassian/jira/6/6.0/.env similarity index 100% rename from linux/atlassian/jira/6/6.0/.env rename to linux/ecosystem/atlassian/jira/6/6.0/.env diff --git a/linux/atlassian/jira/6/6.0/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.0/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.0/Dockerfile diff --git a/linux/atlassian/jira/6/6.2.7/Makefile b/linux/ecosystem/atlassian/jira/6/6.0/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.2.7/Makefile rename to linux/ecosystem/atlassian/jira/6/6.0/Makefile diff --git a/linux/atlassian/jira/6/6.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.0/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.0/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1.1/.env b/linux/ecosystem/atlassian/jira/6/6.1.1/.env similarity index 100% rename from linux/atlassian/jira/6/6.1.1/.env rename to linux/ecosystem/atlassian/jira/6/6.1.1/.env diff --git a/linux/atlassian/jira/6/6.1.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1.1/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1.1/Dockerfile diff --git a/linux/atlassian/jira/6/6.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.1/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.2/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1.1/Makefile diff --git a/linux/atlassian/jira/6/6.1.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1.1/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.1/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1.2/.env b/linux/ecosystem/atlassian/jira/6/6.1.2/.env similarity index 100% rename from linux/atlassian/jira/6/6.1.2/.env rename to linux/ecosystem/atlassian/jira/6/6.1.2/.env diff --git a/linux/atlassian/jira/6/6.1.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1.2/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1.2/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.2/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.1/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1.2/Makefile diff --git a/linux/atlassian/jira/6/6.1.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1.2/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.2/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1.3/.env b/linux/ecosystem/atlassian/jira/6/6.1.3/.env similarity index 100% rename from linux/atlassian/jira/6/6.1.3/.env rename to linux/ecosystem/atlassian/jira/6/6.1.3/.env diff --git a/linux/atlassian/jira/6/6.1.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1.3/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1.3/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.10/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.3/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.10/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1.3/Makefile diff --git a/linux/atlassian/jira/6/6.1.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1.3/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.3/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1.4/.env b/linux/ecosystem/atlassian/jira/6/6.1.4/.env similarity index 100% rename from linux/atlassian/jira/6/6.1.4/.env rename to linux/ecosystem/atlassian/jira/6/6.1.4/.env diff --git a/linux/atlassian/jira/6/6.1.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1.4/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1.4/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.11/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.4/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.11/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1.4/Makefile diff --git a/linux/atlassian/jira/6/6.1.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1.4/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.4/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1.5/.env b/linux/ecosystem/atlassian/jira/6/6.1.5/.env similarity index 100% rename from linux/atlassian/jira/6/6.1.5/.env rename to linux/ecosystem/atlassian/jira/6/6.1.5/.env diff --git a/linux/atlassian/jira/6/6.1.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1.5/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1.5/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.12/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.5/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.12/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1.5/Makefile diff --git a/linux/atlassian/jira/6/6.1.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1.5/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.5/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1.6/.env b/linux/ecosystem/atlassian/jira/6/6.1.6/.env similarity index 100% rename from linux/atlassian/jira/6/6.1.6/.env rename to linux/ecosystem/atlassian/jira/6/6.1.6/.env diff --git a/linux/atlassian/jira/6/6.1.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1.6/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1.6/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.13/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.6/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.13/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1.6/Makefile diff --git a/linux/atlassian/jira/6/6.1.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1.6/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.6/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1.7/.env b/linux/ecosystem/atlassian/jira/6/6.1.7/.env similarity index 100% rename from linux/atlassian/jira/6/6.1.7/.env rename to linux/ecosystem/atlassian/jira/6/6.1.7/.env diff --git a/linux/atlassian/jira/6/6.1.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1.7/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1.7/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.14/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.7/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.14/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1.7/Makefile diff --git a/linux/atlassian/jira/6/6.1.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1.7/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.7/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1.8/.env b/linux/ecosystem/atlassian/jira/6/6.1.8/.env similarity index 100% rename from linux/atlassian/jira/6/6.1.8/.env rename to linux/ecosystem/atlassian/jira/6/6.1.8/.env diff --git a/linux/atlassian/jira/6/6.1.8/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1.8/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1.8/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.15/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.8/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.15/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1.8/Makefile diff --git a/linux/atlassian/jira/6/6.1.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1.8/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.8/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1.9/.env b/linux/ecosystem/atlassian/jira/6/6.1.9/.env similarity index 100% rename from linux/atlassian/jira/6/6.1.9/.env rename to linux/ecosystem/atlassian/jira/6/6.1.9/.env diff --git a/linux/atlassian/jira/6/6.1.9/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1.9/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1.9/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.1.9/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.3/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1.9/Makefile diff --git a/linux/atlassian/jira/6/6.1.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1.9/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1.9/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.1/.env b/linux/ecosystem/atlassian/jira/6/6.1/.env similarity index 100% rename from linux/atlassian/jira/6/6.1/.env rename to linux/ecosystem/atlassian/jira/6/6.1/.env diff --git a/linux/atlassian/jira/6/6.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.1/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.1/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.1/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.4/Makefile rename to linux/ecosystem/atlassian/jira/6/6.1/Makefile diff --git a/linux/atlassian/jira/6/6.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.1/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.1/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.2.1/.env b/linux/ecosystem/atlassian/jira/6/6.2.1/.env similarity index 100% rename from linux/atlassian/jira/6/6.2.1/.env rename to linux/ecosystem/atlassian/jira/6/6.2.1/.env diff --git a/linux/atlassian/jira/6/6.2.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.2.1/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.2.1/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.5/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.1/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.5/Makefile rename to linux/ecosystem/atlassian/jira/6/6.2.1/Makefile diff --git a/linux/atlassian/jira/6/6.2.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.2.1/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.1/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.2.2/.env b/linux/ecosystem/atlassian/jira/6/6.2.2/.env similarity index 100% rename from linux/atlassian/jira/6/6.2.2/.env rename to linux/ecosystem/atlassian/jira/6/6.2.2/.env diff --git a/linux/atlassian/jira/6/6.2.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.2.2/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.2.2/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.6/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.2/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.6/Makefile rename to linux/ecosystem/atlassian/jira/6/6.2.2/Makefile diff --git a/linux/atlassian/jira/6/6.2.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.2.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.2.2/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.2/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.2.3/.env b/linux/ecosystem/atlassian/jira/6/6.2.3/.env similarity index 100% rename from linux/atlassian/jira/6/6.2.3/.env rename to linux/ecosystem/atlassian/jira/6/6.2.3/.env diff --git a/linux/atlassian/jira/6/6.2.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.2.3/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.2.3/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.7/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.3/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.7/Makefile rename to linux/ecosystem/atlassian/jira/6/6.2.3/Makefile diff --git a/linux/atlassian/jira/6/6.2.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.2.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.2.3/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.3/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.2.4/.env b/linux/ecosystem/atlassian/jira/6/6.2.4/.env similarity index 100% rename from linux/atlassian/jira/6/6.2.4/.env rename to linux/ecosystem/atlassian/jira/6/6.2.4/.env diff --git a/linux/atlassian/jira/6/6.2.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.2.4/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.2.4/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.8/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.4/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.8/Makefile rename to linux/ecosystem/atlassian/jira/6/6.2.4/Makefile diff --git a/linux/atlassian/jira/6/6.2.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.2.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.2.4/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.2.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.4/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.2.5/.env b/linux/ecosystem/atlassian/jira/6/6.2.5/.env similarity index 100% rename from linux/atlassian/jira/6/6.2.5/.env rename to linux/ecosystem/atlassian/jira/6/6.2.5/.env diff --git a/linux/atlassian/jira/6/6.2.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.2.5/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.2.5/Dockerfile diff --git a/linux/atlassian/jira/6/6.3.9/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.5/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3.9/Makefile rename to linux/ecosystem/atlassian/jira/6/6.2.5/Makefile diff --git a/linux/atlassian/jira/6/6.2.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.2.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.2.5/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.2.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.2.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.5/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.2.6/.env b/linux/ecosystem/atlassian/jira/6/6.2.6/.env similarity index 100% rename from linux/atlassian/jira/6/6.2.6/.env rename to linux/ecosystem/atlassian/jira/6/6.2.6/.env diff --git a/linux/atlassian/jira/6/6.2.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.2.6/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.2.6/Dockerfile diff --git a/linux/atlassian/jira/6/6.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.6/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.3/Makefile rename to linux/ecosystem/atlassian/jira/6/6.2.6/Makefile diff --git a/linux/atlassian/jira/6/6.2.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.2.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.2.6/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.2.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.2.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.6/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.2.7/.env b/linux/ecosystem/atlassian/jira/6/6.2.7/.env similarity index 100% rename from linux/atlassian/jira/6/6.2.7/.env rename to linux/ecosystem/atlassian/jira/6/6.2.7/.env diff --git a/linux/atlassian/jira/6/6.2.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.2.7/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.2.7/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.2.7/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.1/Makefile rename to linux/ecosystem/atlassian/jira/6/6.2.7/Makefile diff --git a/linux/atlassian/jira/6/6.2.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.2.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.2.7/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.2.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.2.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2.7/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.2/.env b/linux/ecosystem/atlassian/jira/6/6.2/.env similarity index 100% rename from linux/atlassian/jira/6/6.2/.env rename to linux/ecosystem/atlassian/jira/6/6.2/.env diff --git a/linux/atlassian/jira/6/6.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.2/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.2/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.10/Makefile b/linux/ecosystem/atlassian/jira/6/6.2/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.10/Makefile rename to linux/ecosystem/atlassian/jira/6/6.2/Makefile diff --git a/linux/atlassian/jira/6/6.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.2/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.2/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.1/.env b/linux/ecosystem/atlassian/jira/6/6.3.1/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.1/.env rename to linux/ecosystem/atlassian/jira/6/6.3.1/.env diff --git a/linux/atlassian/jira/6/6.3.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.1/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.1/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.11/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.1/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.11/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.1/Makefile diff --git a/linux/atlassian/jira/6/6.3.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.1/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.1/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.10/.env b/linux/ecosystem/atlassian/jira/6/6.3.10/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.10/.env rename to linux/ecosystem/atlassian/jira/6/6.3.10/.env diff --git a/linux/atlassian/jira/6/6.3.10/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.10/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.10/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.10/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.12/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.10/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.12/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.10/Makefile diff --git a/linux/atlassian/jira/6/6.3.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.10/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.10/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.10/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.10/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.11/.env b/linux/ecosystem/atlassian/jira/6/6.3.11/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.11/.env rename to linux/ecosystem/atlassian/jira/6/6.3.11/.env diff --git a/linux/atlassian/jira/6/6.3.11/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.11/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.11/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.11/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.13/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.11/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.13/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.11/Makefile diff --git a/linux/atlassian/jira/6/6.3.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.11/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.11/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.11/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.11/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.12/.env b/linux/ecosystem/atlassian/jira/6/6.3.12/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.12/.env rename to linux/ecosystem/atlassian/jira/6/6.3.12/.env diff --git a/linux/atlassian/jira/6/6.3.12/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.12/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.12/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.12/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.14/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.12/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.14/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.12/Makefile diff --git a/linux/atlassian/jira/6/6.3.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.12/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.12/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.12/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.12/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.12/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.12/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.13/.env b/linux/ecosystem/atlassian/jira/6/6.3.13/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.13/.env rename to linux/ecosystem/atlassian/jira/6/6.3.13/.env diff --git a/linux/atlassian/jira/6/6.3.13/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.13/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.13/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.13/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.13/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.2/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.13/Makefile diff --git a/linux/atlassian/jira/6/6.3.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.13/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.13/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.13/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.13/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.13/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.13/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.14/.env b/linux/ecosystem/atlassian/jira/6/6.3.14/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.14/.env rename to linux/ecosystem/atlassian/jira/6/6.3.14/.env diff --git a/linux/atlassian/jira/6/6.3.14/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.14/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.14/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.14/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.3/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.14/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.3/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.14/Makefile diff --git a/linux/atlassian/jira/6/6.3.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.14/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.14/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.14/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.14/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.14/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.14/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.15/.env b/linux/ecosystem/atlassian/jira/6/6.3.15/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.15/.env rename to linux/ecosystem/atlassian/jira/6/6.3.15/.env diff --git a/linux/atlassian/jira/6/6.3.15/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.15/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.15/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.15/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.15/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.4/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.15/Makefile diff --git a/linux/atlassian/jira/6/6.3.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.15/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.15/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.15/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.15/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.15/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.15/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.3/.env b/linux/ecosystem/atlassian/jira/6/6.3.3/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.3/.env rename to linux/ecosystem/atlassian/jira/6/6.3.3/.env diff --git a/linux/atlassian/jira/6/6.3.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.3/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.3/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.5/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.3/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.5/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.3/Makefile diff --git a/linux/atlassian/jira/6/6.3.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.3/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.3/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.4/.env b/linux/ecosystem/atlassian/jira/6/6.3.4/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.4/.env rename to linux/ecosystem/atlassian/jira/6/6.3.4/.env diff --git a/linux/atlassian/jira/6/6.3.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.4/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.4/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.6/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.4/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.6/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.4/Makefile diff --git a/linux/atlassian/jira/6/6.3.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.4/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.4/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.5/.env b/linux/ecosystem/atlassian/jira/6/6.3.5/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.5/.env rename to linux/ecosystem/atlassian/jira/6/6.3.5/.env diff --git a/linux/atlassian/jira/6/6.3.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.5/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.5/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.7/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.5/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.7/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.5/Makefile diff --git a/linux/atlassian/jira/6/6.3.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.5/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.5/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.6/.env b/linux/ecosystem/atlassian/jira/6/6.3.6/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.6/.env rename to linux/ecosystem/atlassian/jira/6/6.3.6/.env diff --git a/linux/atlassian/jira/6/6.3.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.6/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.6/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.8/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.6/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.8/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.6/Makefile diff --git a/linux/atlassian/jira/6/6.3.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.6/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.6/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.7/.env b/linux/ecosystem/atlassian/jira/6/6.3.7/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.7/.env rename to linux/ecosystem/atlassian/jira/6/6.3.7/.env diff --git a/linux/atlassian/jira/6/6.3.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.7/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.7/Dockerfile diff --git a/linux/atlassian/jira/6/6.4.9/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.7/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4.9/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.7/Makefile diff --git a/linux/atlassian/jira/6/6.3.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.7/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.7/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.8/.env b/linux/ecosystem/atlassian/jira/6/6.3.8/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.8/.env rename to linux/ecosystem/atlassian/jira/6/6.3.8/.env diff --git a/linux/atlassian/jira/6/6.3.8/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.8/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.8/Dockerfile diff --git a/linux/atlassian/jira/6/6.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.8/Makefile similarity index 100% rename from linux/atlassian/jira/6/6.4/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.8/Makefile diff --git a/linux/atlassian/jira/6/6.3.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.8/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.8/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3.9/.env b/linux/ecosystem/atlassian/jira/6/6.3.9/.env similarity index 100% rename from linux/atlassian/jira/6/6.3.9/.env rename to linux/ecosystem/atlassian/jira/6/6.3.9/.env diff --git a/linux/atlassian/jira/6/6.3.9/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3.9/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3.9/Dockerfile diff --git a/linux/atlassian/jira/7/7.0.0/Makefile b/linux/ecosystem/atlassian/jira/6/6.3.9/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.0.0/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3.9/Makefile diff --git a/linux/atlassian/jira/6/6.3.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3.9/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3.9/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.3/.env b/linux/ecosystem/atlassian/jira/6/6.3/.env similarity index 100% rename from linux/atlassian/jira/6/6.3/.env rename to linux/ecosystem/atlassian/jira/6/6.3/.env diff --git a/linux/atlassian/jira/6/6.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.3/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.3/Dockerfile diff --git a/linux/atlassian/jira/7/7.0.10/Makefile b/linux/ecosystem/atlassian/jira/6/6.3/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.0.10/Makefile rename to linux/ecosystem/atlassian/jira/6/6.3/Makefile diff --git a/linux/atlassian/jira/6/6.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.3/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.3/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.1/.env b/linux/ecosystem/atlassian/jira/6/6.4.1/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.1/.env rename to linux/ecosystem/atlassian/jira/6/6.4.1/.env diff --git a/linux/atlassian/jira/6/6.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.1/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.0.11/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.0.11/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.1/Makefile diff --git a/linux/atlassian/jira/6/6.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.1/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.1/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.10/.env b/linux/ecosystem/atlassian/jira/6/6.4.10/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.10/.env rename to linux/ecosystem/atlassian/jira/6/6.4.10/.env diff --git a/linux/atlassian/jira/6/6.4.10/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.10/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.10/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.10/Dockerfile diff --git a/linux/atlassian/jira/7/7.0.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.10/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.0.2/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.10/Makefile diff --git a/linux/atlassian/jira/6/6.4.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.10/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.10/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.10/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.10/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.11/.env b/linux/ecosystem/atlassian/jira/6/6.4.11/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.11/.env rename to linux/ecosystem/atlassian/jira/6/6.4.11/.env diff --git a/linux/atlassian/jira/6/6.4.11/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.11/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.11/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.11/Dockerfile diff --git a/linux/atlassian/jira/7/7.0.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.11/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.0.4/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.11/Makefile diff --git a/linux/atlassian/jira/6/6.4.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.11/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.11/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.11/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.11/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.12/.env b/linux/ecosystem/atlassian/jira/6/6.4.12/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.12/.env rename to linux/ecosystem/atlassian/jira/6/6.4.12/.env diff --git a/linux/atlassian/jira/6/6.4.12/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.12/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.12/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.12/Dockerfile diff --git a/linux/atlassian/jira/7/7.0.5/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.12/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.0.5/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.12/Makefile diff --git a/linux/atlassian/jira/6/6.4.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.12/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.12/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.12/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.12/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.12/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.12/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.13/.env b/linux/ecosystem/atlassian/jira/6/6.4.13/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.13/.env rename to linux/ecosystem/atlassian/jira/6/6.4.13/.env diff --git a/linux/atlassian/jira/6/6.4.13/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.13/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.13/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.13/Dockerfile diff --git a/linux/atlassian/jira/7/7.1.0/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.13/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.1.0/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.13/Makefile diff --git a/linux/atlassian/jira/6/6.4.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.13/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.13/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.13/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.13/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.13/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.13/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.14/.env b/linux/ecosystem/atlassian/jira/6/6.4.14/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.14/.env rename to linux/ecosystem/atlassian/jira/6/6.4.14/.env diff --git a/linux/atlassian/jira/6/6.4.14/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.14/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.14/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.14/Dockerfile diff --git a/linux/atlassian/jira/7/7.1.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.14/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.1.1/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.14/Makefile diff --git a/linux/atlassian/jira/6/6.4.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.14/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.14/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.14/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.14/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.14/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.14/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.2/.env b/linux/ecosystem/atlassian/jira/6/6.4.2/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.2/.env rename to linux/ecosystem/atlassian/jira/6/6.4.2/.env diff --git a/linux/atlassian/jira/6/6.4.2/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.2/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.1.10/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.1.10/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.2/Makefile diff --git a/linux/atlassian/jira/6/6.4.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.2/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.2/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.3/.env b/linux/ecosystem/atlassian/jira/6/6.4.3/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.3/.env rename to linux/ecosystem/atlassian/jira/6/6.4.3/.env diff --git a/linux/atlassian/jira/6/6.4.3/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.3/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.3/Dockerfile diff --git a/linux/atlassian/jira/7/7.1.2/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.3/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.1.2/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.3/Makefile diff --git a/linux/atlassian/jira/6/6.4.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.3/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.3/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.4/.env b/linux/ecosystem/atlassian/jira/6/6.4.4/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.4/.env rename to linux/ecosystem/atlassian/jira/6/6.4.4/.env diff --git a/linux/atlassian/jira/6/6.4.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.4/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.4/Dockerfile diff --git a/linux/atlassian/jira/7/7.1.4/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.4/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.1.4/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.4/Makefile diff --git a/linux/atlassian/jira/6/6.4.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.4/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.4/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.5/.env b/linux/ecosystem/atlassian/jira/6/6.4.5/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.5/.env rename to linux/ecosystem/atlassian/jira/6/6.4.5/.env diff --git a/linux/atlassian/jira/6/6.4.5/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.5/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.5/Dockerfile diff --git a/linux/atlassian/jira/7/7.1.6/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.5/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.1.6/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.5/Makefile diff --git a/linux/atlassian/jira/6/6.4.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.5/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.5/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.6/.env b/linux/ecosystem/atlassian/jira/6/6.4.6/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.6/.env rename to linux/ecosystem/atlassian/jira/6/6.4.6/.env diff --git a/linux/atlassian/jira/6/6.4.6/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.6/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.6/Dockerfile diff --git a/linux/atlassian/jira/7/7.1.7/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.6/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.1.7/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.6/Makefile diff --git a/linux/atlassian/jira/6/6.4.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.6/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.6/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.7/.env b/linux/ecosystem/atlassian/jira/6/6.4.7/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.7/.env rename to linux/ecosystem/atlassian/jira/6/6.4.7/.env diff --git a/linux/atlassian/jira/6/6.4.7/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.7/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.7/Dockerfile diff --git a/linux/atlassian/jira/7/7.1.8/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.7/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.1.8/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.7/Makefile diff --git a/linux/atlassian/jira/6/6.4.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.7/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.7/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.8/.env b/linux/ecosystem/atlassian/jira/6/6.4.8/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.8/.env rename to linux/ecosystem/atlassian/jira/6/6.4.8/.env diff --git a/linux/atlassian/jira/6/6.4.8/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.8/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.8/Dockerfile diff --git a/linux/atlassian/jira/7/7.1.9/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.8/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.1.9/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.8/Makefile diff --git a/linux/atlassian/jira/6/6.4.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.8/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.8/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4.9/.env b/linux/ecosystem/atlassian/jira/6/6.4.9/.env similarity index 100% rename from linux/atlassian/jira/6/6.4.9/.env rename to linux/ecosystem/atlassian/jira/6/6.4.9/.env diff --git a/linux/atlassian/jira/6/6.4.9/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4.9/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4.9/Dockerfile diff --git a/linux/atlassian/jira/7/7.10.0/Makefile b/linux/ecosystem/atlassian/jira/6/6.4.9/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.10.0/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4.9/Makefile diff --git a/linux/atlassian/jira/6/6.4.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4.9/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4.9/entrypoint.sh diff --git a/linux/atlassian/jira/6/6.4/.env b/linux/ecosystem/atlassian/jira/6/6.4/.env similarity index 100% rename from linux/atlassian/jira/6/6.4/.env rename to linux/ecosystem/atlassian/jira/6/6.4/.env diff --git a/linux/atlassian/jira/6/6.4/Dockerfile b/linux/ecosystem/atlassian/jira/6/6.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/6/6.4/Dockerfile rename to linux/ecosystem/atlassian/jira/6/6.4/Dockerfile diff --git a/linux/atlassian/jira/7/7.10.1/Makefile b/linux/ecosystem/atlassian/jira/6/6.4/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.10.1/Makefile rename to linux/ecosystem/atlassian/jira/6/6.4/Makefile diff --git a/linux/atlassian/jira/6/6.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/6/6.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/6/6.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/6/6.4/docker-compose.yml diff --git a/linux/atlassian/jira/6/6.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/6/6.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/6/6.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/6/6.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.0.0/.env b/linux/ecosystem/atlassian/jira/7/7.0.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.0.0/.env rename to linux/ecosystem/atlassian/jira/7/7.0.0/.env diff --git a/linux/atlassian/jira/7/7.0.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.0.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.0.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.10.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.10.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.0.0/Makefile diff --git a/linux/atlassian/jira/7/7.0.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.0.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.0.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.0.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.0.10/.env b/linux/ecosystem/atlassian/jira/7/7.0.10/.env similarity index 100% rename from linux/atlassian/jira/7/7.0.10/.env rename to linux/ecosystem/atlassian/jira/7/7.0.10/.env diff --git a/linux/atlassian/jira/7/7.0.10/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.10/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.0.10/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.0.10/Dockerfile diff --git a/linux/atlassian/jira/7/7.11.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.10/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.11.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.0.10/Makefile diff --git a/linux/atlassian/jira/7/7.0.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.10/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.0.10/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.0.10/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.0.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.10/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.0.11/.env b/linux/ecosystem/atlassian/jira/7/7.0.11/.env similarity index 100% rename from linux/atlassian/jira/7/7.0.11/.env rename to linux/ecosystem/atlassian/jira/7/7.0.11/.env diff --git a/linux/atlassian/jira/7/7.0.11/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.11/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.0.11/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.0.11/Dockerfile diff --git a/linux/atlassian/jira/7/7.11.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.11/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.11.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.0.11/Makefile diff --git a/linux/atlassian/jira/7/7.0.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.11/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.0.11/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.0.11/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.0.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.11/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.0.2/.env b/linux/ecosystem/atlassian/jira/7/7.0.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.0.2/.env rename to linux/ecosystem/atlassian/jira/7/7.0.2/.env diff --git a/linux/atlassian/jira/7/7.0.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.0.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.0.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.11.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.11.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.0.2/Makefile diff --git a/linux/atlassian/jira/7/7.0.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.0.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.0.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.0.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.0.4/.env b/linux/ecosystem/atlassian/jira/7/7.0.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.0.4/.env rename to linux/ecosystem/atlassian/jira/7/7.0.4/.env diff --git a/linux/atlassian/jira/7/7.0.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.0.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.0.4/Dockerfile diff --git a/linux/atlassian/jira/7/7.12.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.4/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.12.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.0.4/Makefile diff --git a/linux/atlassian/jira/7/7.0.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.0.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.0.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.0.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.0.5/.env b/linux/ecosystem/atlassian/jira/7/7.0.5/.env similarity index 100% rename from linux/atlassian/jira/7/7.0.5/.env rename to linux/ecosystem/atlassian/jira/7/7.0.5/.env diff --git a/linux/atlassian/jira/7/7.0.5/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.0.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.0.5/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.0.5/Dockerfile diff --git a/linux/atlassian/jira/7/7.12.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.5/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.12.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.0.5/Makefile diff --git a/linux/atlassian/jira/7/7.0.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.0.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.0.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.0.5/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.0.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.0.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.0.5/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.1.0/.env b/linux/ecosystem/atlassian/jira/7/7.1.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.1.0/.env rename to linux/ecosystem/atlassian/jira/7/7.1.0/.env diff --git a/linux/atlassian/jira/7/7.1.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.1.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.1.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.12.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.12.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.1.0/Makefile diff --git a/linux/atlassian/jira/7/7.1.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.1.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.1.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.1.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.1.1/.env b/linux/ecosystem/atlassian/jira/7/7.1.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.1.1/.env rename to linux/ecosystem/atlassian/jira/7/7.1.1/.env diff --git a/linux/atlassian/jira/7/7.1.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.1.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.1.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.1.1/Makefile diff --git a/linux/atlassian/jira/7/7.1.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.1.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.1.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.1.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.1.10/.env b/linux/ecosystem/atlassian/jira/7/7.1.10/.env similarity index 100% rename from linux/atlassian/jira/7/7.1.10/.env rename to linux/ecosystem/atlassian/jira/7/7.1.10/.env diff --git a/linux/atlassian/jira/7/7.1.10/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.10/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.1.10/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.1.10/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.10/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.1.10/Makefile diff --git a/linux/atlassian/jira/7/7.1.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.10/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.1.10/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.1.10/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.1.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.10/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.1.2/.env b/linux/ecosystem/atlassian/jira/7/7.1.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.1.2/.env rename to linux/ecosystem/atlassian/jira/7/7.1.2/.env diff --git a/linux/atlassian/jira/7/7.1.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.1.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.1.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.11/Makefile rename to linux/ecosystem/atlassian/jira/7/7.1.2/Makefile diff --git a/linux/atlassian/jira/7/7.1.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.1.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.1.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.1.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.1.4/.env b/linux/ecosystem/atlassian/jira/7/7.1.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.1.4/.env rename to linux/ecosystem/atlassian/jira/7/7.1.4/.env diff --git a/linux/atlassian/jira/7/7.1.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.1.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.1.4/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.12/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.4/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.12/Makefile rename to linux/ecosystem/atlassian/jira/7/7.1.4/Makefile diff --git a/linux/atlassian/jira/7/7.1.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.1.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.1.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.1.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.1.6/.env b/linux/ecosystem/atlassian/jira/7/7.1.6/.env similarity index 100% rename from linux/atlassian/jira/7/7.1.6/.env rename to linux/ecosystem/atlassian/jira/7/7.1.6/.env diff --git a/linux/atlassian/jira/7/7.1.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.1.6/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.1.6/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.13/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.6/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.13/Makefile rename to linux/ecosystem/atlassian/jira/7/7.1.6/Makefile diff --git a/linux/atlassian/jira/7/7.1.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.1.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.1.6/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.1.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.6/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.1.7/.env b/linux/ecosystem/atlassian/jira/7/7.1.7/.env similarity index 100% rename from linux/atlassian/jira/7/7.1.7/.env rename to linux/ecosystem/atlassian/jira/7/7.1.7/.env diff --git a/linux/atlassian/jira/7/7.1.7/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.1.7/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.1.7/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.14/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.7/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.14/Makefile rename to linux/ecosystem/atlassian/jira/7/7.1.7/Makefile diff --git a/linux/atlassian/jira/7/7.1.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.1.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.1.7/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.1.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.7/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.1.8/.env b/linux/ecosystem/atlassian/jira/7/7.1.8/.env similarity index 100% rename from linux/atlassian/jira/7/7.1.8/.env rename to linux/ecosystem/atlassian/jira/7/7.1.8/.env diff --git a/linux/atlassian/jira/7/7.1.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.1.8/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.1.8/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.15/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.8/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.15/Makefile rename to linux/ecosystem/atlassian/jira/7/7.1.8/Makefile diff --git a/linux/atlassian/jira/7/7.1.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.1.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.1.8/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.1.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.8/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.1.9/.env b/linux/ecosystem/atlassian/jira/7/7.1.9/.env similarity index 100% rename from linux/atlassian/jira/7/7.1.9/.env rename to linux/ecosystem/atlassian/jira/7/7.1.9/.env diff --git a/linux/atlassian/jira/7/7.1.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.1.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.1.9/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.1.9/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.16/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.9/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.16/Makefile rename to linux/ecosystem/atlassian/jira/7/7.1.9/Makefile diff --git a/linux/atlassian/jira/7/7.1.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.1.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.1.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.1.9/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.1.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.1.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.1.9/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.10.0/.env b/linux/ecosystem/atlassian/jira/7/7.10.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.10.0/.env rename to linux/ecosystem/atlassian/jira/7/7.10.0/.env diff --git a/linux/atlassian/jira/7/7.10.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.10.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.10.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.10.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.17/Makefile b/linux/ecosystem/atlassian/jira/7/7.10.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.17/Makefile rename to linux/ecosystem/atlassian/jira/7/7.10.0/Makefile diff --git a/linux/atlassian/jira/7/7.10.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.10.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.10.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.10.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.10.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.10.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.10.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.10.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.10.1/.env b/linux/ecosystem/atlassian/jira/7/7.10.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.10.1/.env rename to linux/ecosystem/atlassian/jira/7/7.10.1/.env diff --git a/linux/atlassian/jira/7/7.10.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.10.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.10.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.10.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.18/Makefile b/linux/ecosystem/atlassian/jira/7/7.10.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.18/Makefile rename to linux/ecosystem/atlassian/jira/7/7.10.1/Makefile diff --git a/linux/atlassian/jira/7/7.10.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.10.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.10.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.10.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.10.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.10.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.10.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.10.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.10.2/.env b/linux/ecosystem/atlassian/jira/7/7.10.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.10.2/.env rename to linux/ecosystem/atlassian/jira/7/7.10.2/.env diff --git a/linux/atlassian/jira/7/7.10.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.10.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.10.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.10.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.10.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.10.2/Makefile diff --git a/linux/atlassian/jira/7/7.10.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.10.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.10.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.10.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.10.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.10.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.10.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.10.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.11.0/.env b/linux/ecosystem/atlassian/jira/7/7.11.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.11.0/.env rename to linux/ecosystem/atlassian/jira/7/7.11.0/.env diff --git a/linux/atlassian/jira/7/7.11.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.11.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.11.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.11.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.11.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.11.0/Makefile diff --git a/linux/atlassian/jira/7/7.11.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.11.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.11.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.11.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.11.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.11.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.11.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.11.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.11.1/.env b/linux/ecosystem/atlassian/jira/7/7.11.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.11.1/.env rename to linux/ecosystem/atlassian/jira/7/7.11.1/.env diff --git a/linux/atlassian/jira/7/7.11.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.11.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.11.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.11.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.11.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.4/Makefile rename to linux/ecosystem/atlassian/jira/7/7.11.1/Makefile diff --git a/linux/atlassian/jira/7/7.11.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.11.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.11.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.11.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.11.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.11.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.11.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.11.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.11.2/.env b/linux/ecosystem/atlassian/jira/7/7.11.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.11.2/.env rename to linux/ecosystem/atlassian/jira/7/7.11.2/.env diff --git a/linux/atlassian/jira/7/7.11.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.11.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.11.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.11.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.11.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.5/Makefile rename to linux/ecosystem/atlassian/jira/7/7.11.2/Makefile diff --git a/linux/atlassian/jira/7/7.11.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.11.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.11.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.11.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.11.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.11.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.11.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.11.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.12.0/.env b/linux/ecosystem/atlassian/jira/7/7.12.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.12.0/.env rename to linux/ecosystem/atlassian/jira/7/7.12.0/.env diff --git a/linux/atlassian/jira/7/7.12.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.12.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.12.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.12.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.12.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.6/Makefile rename to linux/ecosystem/atlassian/jira/7/7.12.0/Makefile diff --git a/linux/atlassian/jira/7/7.12.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.12.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.12.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.12.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.12.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.12.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.12.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.12.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.12.1/.env b/linux/ecosystem/atlassian/jira/7/7.12.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.12.1/.env rename to linux/ecosystem/atlassian/jira/7/7.12.1/.env diff --git a/linux/atlassian/jira/7/7.12.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.12.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.12.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.12.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.12.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.8/Makefile rename to linux/ecosystem/atlassian/jira/7/7.12.1/Makefile diff --git a/linux/atlassian/jira/7/7.12.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.12.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.12.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.12.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.12.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.12.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.12.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.12.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.12.3/.env b/linux/ecosystem/atlassian/jira/7/7.12.3/.env similarity index 100% rename from linux/atlassian/jira/7/7.12.3/.env rename to linux/ecosystem/atlassian/jira/7/7.12.3/.env diff --git a/linux/atlassian/jira/7/7.12.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.12.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.12.3/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.12.3/Dockerfile diff --git a/linux/atlassian/jira/7/7.13.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.12.3/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.13.9/Makefile rename to linux/ecosystem/atlassian/jira/7/7.12.3/Makefile diff --git a/linux/atlassian/jira/7/7.12.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.12.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.12.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.12.3/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.12.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.12.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.12.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.12.3/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.0/.env b/linux/ecosystem/atlassian/jira/7/7.13.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.0/.env rename to linux/ecosystem/atlassian/jira/7/7.13.0/.env diff --git a/linux/atlassian/jira/7/7.13.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.0/Makefile diff --git a/linux/atlassian/jira/7/7.13.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.1/.env b/linux/ecosystem/atlassian/jira/7/7.13.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.1/.env rename to linux/ecosystem/atlassian/jira/7/7.13.1/.env diff --git a/linux/atlassian/jira/7/7.13.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.1/Makefile diff --git a/linux/atlassian/jira/7/7.13.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.11/.env b/linux/ecosystem/atlassian/jira/7/7.13.11/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.11/.env rename to linux/ecosystem/atlassian/jira/7/7.13.11/.env diff --git a/linux/atlassian/jira/7/7.13.11/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.11/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.11/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.11/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.11/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.10/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.11/Makefile diff --git a/linux/atlassian/jira/7/7.13.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.11/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.11/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.11/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.11/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.12/.env b/linux/ecosystem/atlassian/jira/7/7.13.12/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.12/.env rename to linux/ecosystem/atlassian/jira/7/7.13.12/.env diff --git a/linux/atlassian/jira/7/7.13.12/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.12/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.12/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.12/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.12/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.11/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.12/Makefile diff --git a/linux/atlassian/jira/7/7.13.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.12/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.12/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.12/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.12/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.12/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.12/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.13/.env b/linux/ecosystem/atlassian/jira/7/7.13.13/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.13/.env rename to linux/ecosystem/atlassian/jira/7/7.13.13/.env diff --git a/linux/atlassian/jira/7/7.13.13/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.13/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.13/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.13/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.12/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.13/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.12/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.13/Makefile diff --git a/linux/atlassian/jira/7/7.13.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.13/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.13/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.13/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.13/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.13/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.13/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.14/.env b/linux/ecosystem/atlassian/jira/7/7.13.14/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.14/.env rename to linux/ecosystem/atlassian/jira/7/7.13.14/.env diff --git a/linux/atlassian/jira/7/7.13.14/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.14/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.14/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.14/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.13/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.14/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.13/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.14/Makefile diff --git a/linux/atlassian/jira/7/7.13.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.14/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.14/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.14/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.14/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.14/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.14/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.15/.env b/linux/ecosystem/atlassian/jira/7/7.13.15/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.15/.env rename to linux/ecosystem/atlassian/jira/7/7.13.15/.env diff --git a/linux/atlassian/jira/7/7.13.15/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.15/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.15/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.15/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.14/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.15/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.14/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.15/Makefile diff --git a/linux/atlassian/jira/7/7.13.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.15/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.15/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.15/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.15/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.15/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.15/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.16/.env b/linux/ecosystem/atlassian/jira/7/7.13.16/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.16/.env rename to linux/ecosystem/atlassian/jira/7/7.13.16/.env diff --git a/linux/atlassian/jira/7/7.13.16/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.16/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.16/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.16/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.15/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.16/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.15/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.16/Makefile diff --git a/linux/atlassian/jira/7/7.13.16/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.16/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.16/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.16/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.16/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.16/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.16/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.16/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.17/.env b/linux/ecosystem/atlassian/jira/7/7.13.17/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.17/.env rename to linux/ecosystem/atlassian/jira/7/7.13.17/.env diff --git a/linux/atlassian/jira/7/7.13.17/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.17/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.17/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.17/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.17/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.17/Makefile diff --git a/linux/atlassian/jira/7/7.13.17/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.17/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.17/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.17/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.17/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.17/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.17/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.17/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.18/.env b/linux/ecosystem/atlassian/jira/7/7.13.18/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.18/.env rename to linux/ecosystem/atlassian/jira/7/7.13.18/.env diff --git a/linux/atlassian/jira/7/7.13.18/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.18/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.18/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.18/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.18/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.18/Makefile diff --git a/linux/atlassian/jira/7/7.13.18/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.18/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.18/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.18/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.18/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.18/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.18/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.18/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.2/.env b/linux/ecosystem/atlassian/jira/7/7.13.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.2/.env rename to linux/ecosystem/atlassian/jira/7/7.13.2/.env diff --git a/linux/atlassian/jira/7/7.13.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.4/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.2/Makefile diff --git a/linux/atlassian/jira/7/7.13.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.3/.env b/linux/ecosystem/atlassian/jira/7/7.13.3/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.3/.env rename to linux/ecosystem/atlassian/jira/7/7.13.3/.env diff --git a/linux/atlassian/jira/7/7.13.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.3/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.3/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.3/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.6/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.3/Makefile diff --git a/linux/atlassian/jira/7/7.13.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.3/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.3/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.4/.env b/linux/ecosystem/atlassian/jira/7/7.13.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.4/.env rename to linux/ecosystem/atlassian/jira/7/7.13.4/.env diff --git a/linux/atlassian/jira/7/7.13.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.4/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.4/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.7/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.4/Makefile diff --git a/linux/atlassian/jira/7/7.13.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.5/.env b/linux/ecosystem/atlassian/jira/7/7.13.5/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.5/.env rename to linux/ecosystem/atlassian/jira/7/7.13.5/.env diff --git a/linux/atlassian/jira/7/7.13.5/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.5/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.5/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.5/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.8/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.5/Makefile diff --git a/linux/atlassian/jira/7/7.13.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.5/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.5/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.6/.env b/linux/ecosystem/atlassian/jira/7/7.13.6/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.6/.env rename to linux/ecosystem/atlassian/jira/7/7.13.6/.env diff --git a/linux/atlassian/jira/7/7.13.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.6/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.6/Dockerfile diff --git a/linux/atlassian/jira/7/7.2.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.6/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.2.9/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.6/Makefile diff --git a/linux/atlassian/jira/7/7.13.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.6/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.6/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.8/.env b/linux/ecosystem/atlassian/jira/7/7.13.8/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.8/.env rename to linux/ecosystem/atlassian/jira/7/7.13.8/.env diff --git a/linux/atlassian/jira/7/7.13.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.8/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.8/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.8/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.8/Makefile diff --git a/linux/atlassian/jira/7/7.13.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.8/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.8/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.13.9/.env b/linux/ecosystem/atlassian/jira/7/7.13.9/.env similarity index 100% rename from linux/atlassian/jira/7/7.13.9/.env rename to linux/ecosystem/atlassian/jira/7/7.13.9/.env diff --git a/linux/atlassian/jira/7/7.13.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.13.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.13.9/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.13.9/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.9/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.13.9/Makefile diff --git a/linux/atlassian/jira/7/7.13.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.13.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.13.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.13.9/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.13.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.13.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.13.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.13.9/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.0/.env b/linux/ecosystem/atlassian/jira/7/7.2.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.0/.env rename to linux/ecosystem/atlassian/jira/7/7.2.0/.env diff --git a/linux/atlassian/jira/7/7.2.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.0/Makefile diff --git a/linux/atlassian/jira/7/7.2.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.1/.env b/linux/ecosystem/atlassian/jira/7/7.2.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.1/.env rename to linux/ecosystem/atlassian/jira/7/7.2.1/.env diff --git a/linux/atlassian/jira/7/7.2.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.1/Makefile diff --git a/linux/atlassian/jira/7/7.2.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.10/.env b/linux/ecosystem/atlassian/jira/7/7.2.10/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.10/.env rename to linux/ecosystem/atlassian/jira/7/7.2.10/.env diff --git a/linux/atlassian/jira/7/7.2.10/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.10/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.10/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.10/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.10/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.4/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.10/Makefile diff --git a/linux/atlassian/jira/7/7.2.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.10/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.10/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.10/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.10/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.11/.env b/linux/ecosystem/atlassian/jira/7/7.2.11/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.11/.env rename to linux/ecosystem/atlassian/jira/7/7.2.11/.env diff --git a/linux/atlassian/jira/7/7.2.11/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.11/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.11/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.11/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.11/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.5/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.11/Makefile diff --git a/linux/atlassian/jira/7/7.2.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.11/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.11/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.11/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.11/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.12/.env b/linux/ecosystem/atlassian/jira/7/7.2.12/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.12/.env rename to linux/ecosystem/atlassian/jira/7/7.2.12/.env diff --git a/linux/atlassian/jira/7/7.2.12/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.12/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.12/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.12/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.12/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.6/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.12/Makefile diff --git a/linux/atlassian/jira/7/7.2.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.12/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.12/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.12/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.12/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.12/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.12/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.13/.env b/linux/ecosystem/atlassian/jira/7/7.2.13/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.13/.env rename to linux/ecosystem/atlassian/jira/7/7.2.13/.env diff --git a/linux/atlassian/jira/7/7.2.13/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.13/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.13/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.13/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.13/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.7/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.13/Makefile diff --git a/linux/atlassian/jira/7/7.2.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.13/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.13/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.13/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.13/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.13/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.13/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.14/.env b/linux/ecosystem/atlassian/jira/7/7.2.14/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.14/.env rename to linux/ecosystem/atlassian/jira/7/7.2.14/.env diff --git a/linux/atlassian/jira/7/7.2.14/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.14/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.14/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.14/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.14/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.8/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.14/Makefile diff --git a/linux/atlassian/jira/7/7.2.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.14/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.14/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.14/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.14/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.14/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.14/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.15/.env b/linux/ecosystem/atlassian/jira/7/7.2.15/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.15/.env rename to linux/ecosystem/atlassian/jira/7/7.2.15/.env diff --git a/linux/atlassian/jira/7/7.2.15/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.15/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.15/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.15/Dockerfile diff --git a/linux/atlassian/jira/7/7.3.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.15/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.3.9/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.15/Makefile diff --git a/linux/atlassian/jira/7/7.2.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.15/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.15/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.15/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.15/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.15/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.15/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.2/.env b/linux/ecosystem/atlassian/jira/7/7.2.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.2/.env rename to linux/ecosystem/atlassian/jira/7/7.2.2/.env diff --git a/linux/atlassian/jira/7/7.2.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.4.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.4.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.2/Makefile diff --git a/linux/atlassian/jira/7/7.2.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.3/.env b/linux/ecosystem/atlassian/jira/7/7.2.3/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.3/.env rename to linux/ecosystem/atlassian/jira/7/7.2.3/.env diff --git a/linux/atlassian/jira/7/7.2.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.3/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.3/Dockerfile diff --git a/linux/atlassian/jira/7/7.4.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.3/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.4.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.3/Makefile diff --git a/linux/atlassian/jira/7/7.2.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.3/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.3/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.4/.env b/linux/ecosystem/atlassian/jira/7/7.2.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.4/.env rename to linux/ecosystem/atlassian/jira/7/7.2.4/.env diff --git a/linux/atlassian/jira/7/7.2.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.4/Dockerfile diff --git a/linux/atlassian/jira/7/7.4.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.4/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.4.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.4/Makefile diff --git a/linux/atlassian/jira/7/7.2.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.6/.env b/linux/ecosystem/atlassian/jira/7/7.2.6/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.6/.env rename to linux/ecosystem/atlassian/jira/7/7.2.6/.env diff --git a/linux/atlassian/jira/7/7.2.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.6/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.6/Dockerfile diff --git a/linux/atlassian/jira/7/7.4.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.6/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.4.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.6/Makefile diff --git a/linux/atlassian/jira/7/7.2.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.6/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.6/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.7/.env b/linux/ecosystem/atlassian/jira/7/7.2.7/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.7/.env rename to linux/ecosystem/atlassian/jira/7/7.2.7/.env diff --git a/linux/atlassian/jira/7/7.2.7/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.7/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.7/Dockerfile diff --git a/linux/atlassian/jira/7/7.4.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.7/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.4.4/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.7/Makefile diff --git a/linux/atlassian/jira/7/7.2.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.7/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.7/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.8/.env b/linux/ecosystem/atlassian/jira/7/7.2.8/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.8/.env rename to linux/ecosystem/atlassian/jira/7/7.2.8/.env diff --git a/linux/atlassian/jira/7/7.2.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.8/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.8/Dockerfile diff --git a/linux/atlassian/jira/7/7.4.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.8/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.4.5/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.8/Makefile diff --git a/linux/atlassian/jira/7/7.2.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.8/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.8/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.2.9/.env b/linux/ecosystem/atlassian/jira/7/7.2.9/.env similarity index 100% rename from linux/atlassian/jira/7/7.2.9/.env rename to linux/ecosystem/atlassian/jira/7/7.2.9/.env diff --git a/linux/atlassian/jira/7/7.2.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.2.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.2.9/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.2.9/Dockerfile diff --git a/linux/atlassian/jira/7/7.4.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.9/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.4.6/Makefile rename to linux/ecosystem/atlassian/jira/7/7.2.9/Makefile diff --git a/linux/atlassian/jira/7/7.2.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.2.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.2.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.2.9/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.2.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.2.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.2.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.2.9/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.0/.env b/linux/ecosystem/atlassian/jira/7/7.3.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.0/.env rename to linux/ecosystem/atlassian/jira/7/7.3.0/.env diff --git a/linux/atlassian/jira/7/7.3.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.5.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.5.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.0/Makefile diff --git a/linux/atlassian/jira/7/7.3.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.1/.env b/linux/ecosystem/atlassian/jira/7/7.3.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.1/.env rename to linux/ecosystem/atlassian/jira/7/7.3.1/.env diff --git a/linux/atlassian/jira/7/7.3.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.5.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.5.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.1/Makefile diff --git a/linux/atlassian/jira/7/7.3.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.2/.env b/linux/ecosystem/atlassian/jira/7/7.3.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.2/.env rename to linux/ecosystem/atlassian/jira/7/7.3.2/.env diff --git a/linux/atlassian/jira/7/7.3.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.5.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.5.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.2/Makefile diff --git a/linux/atlassian/jira/7/7.3.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.3/.env b/linux/ecosystem/atlassian/jira/7/7.3.3/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.3/.env rename to linux/ecosystem/atlassian/jira/7/7.3.3/.env diff --git a/linux/atlassian/jira/7/7.3.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.3/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.3/Dockerfile diff --git a/linux/atlassian/jira/7/7.5.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.3/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.5.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.3/Makefile diff --git a/linux/atlassian/jira/7/7.3.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.3/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.3/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.4/.env b/linux/ecosystem/atlassian/jira/7/7.3.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.4/.env rename to linux/ecosystem/atlassian/jira/7/7.3.4/.env diff --git a/linux/atlassian/jira/7/7.3.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.4/Dockerfile diff --git a/linux/atlassian/jira/7/7.5.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.4/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.5.4/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.4/Makefile diff --git a/linux/atlassian/jira/7/7.3.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.5/.env b/linux/ecosystem/atlassian/jira/7/7.3.5/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.5/.env rename to linux/ecosystem/atlassian/jira/7/7.3.5/.env diff --git a/linux/atlassian/jira/7/7.3.5/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.5/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.5/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.5/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.5/Makefile diff --git a/linux/atlassian/jira/7/7.3.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.5/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.5/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.6/.env b/linux/ecosystem/atlassian/jira/7/7.3.6/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.6/.env rename to linux/ecosystem/atlassian/jira/7/7.3.6/.env diff --git a/linux/atlassian/jira/7/7.3.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.6/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.6/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.6/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.6/Makefile diff --git a/linux/atlassian/jira/7/7.3.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.6/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.6/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.7/.env b/linux/ecosystem/atlassian/jira/7/7.3.7/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.7/.env rename to linux/ecosystem/atlassian/jira/7/7.3.7/.env diff --git a/linux/atlassian/jira/7/7.3.7/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.7/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.7/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.7/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.10/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.7/Makefile diff --git a/linux/atlassian/jira/7/7.3.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.7/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.7/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.8/.env b/linux/ecosystem/atlassian/jira/7/7.3.8/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.8/.env rename to linux/ecosystem/atlassian/jira/7/7.3.8/.env diff --git a/linux/atlassian/jira/7/7.3.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.8/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.8/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.8/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.11/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.8/Makefile diff --git a/linux/atlassian/jira/7/7.3.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.8/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.8/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.3.9/.env b/linux/ecosystem/atlassian/jira/7/7.3.9/.env similarity index 100% rename from linux/atlassian/jira/7/7.3.9/.env rename to linux/ecosystem/atlassian/jira/7/7.3.9/.env diff --git a/linux/atlassian/jira/7/7.3.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.3.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.3.9/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.3.9/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.12/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.9/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.12/Makefile rename to linux/ecosystem/atlassian/jira/7/7.3.9/Makefile diff --git a/linux/atlassian/jira/7/7.3.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.3.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.3.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.3.9/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.3.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.3.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.3.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.3.9/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.4.0/.env b/linux/ecosystem/atlassian/jira/7/7.4.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.4.0/.env rename to linux/ecosystem/atlassian/jira/7/7.4.0/.env diff --git a/linux/atlassian/jira/7/7.4.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.4.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.4.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.13/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.13/Makefile rename to linux/ecosystem/atlassian/jira/7/7.4.0/Makefile diff --git a/linux/atlassian/jira/7/7.4.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.4.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.4.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.4.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.4.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.4.1/.env b/linux/ecosystem/atlassian/jira/7/7.4.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.4.1/.env rename to linux/ecosystem/atlassian/jira/7/7.4.1/.env diff --git a/linux/atlassian/jira/7/7.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.4.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.4.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.14/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.14/Makefile rename to linux/ecosystem/atlassian/jira/7/7.4.1/Makefile diff --git a/linux/atlassian/jira/7/7.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.4.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.4.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.4.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.4.2/.env b/linux/ecosystem/atlassian/jira/7/7.4.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.4.2/.env rename to linux/ecosystem/atlassian/jira/7/7.4.2/.env diff --git a/linux/atlassian/jira/7/7.4.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.4.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.4.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.15/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.15/Makefile rename to linux/ecosystem/atlassian/jira/7/7.4.2/Makefile diff --git a/linux/atlassian/jira/7/7.4.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.4.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.4.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.4.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.4.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.4.3/.env b/linux/ecosystem/atlassian/jira/7/7.4.3/.env similarity index 100% rename from linux/atlassian/jira/7/7.4.3/.env rename to linux/ecosystem/atlassian/jira/7/7.4.3/.env diff --git a/linux/atlassian/jira/7/7.4.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.4.3/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.4.3/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.16/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.3/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.16/Makefile rename to linux/ecosystem/atlassian/jira/7/7.4.3/Makefile diff --git a/linux/atlassian/jira/7/7.4.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.4.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.4.3/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.4.3/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.4.4/.env b/linux/ecosystem/atlassian/jira/7/7.4.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.4.4/.env rename to linux/ecosystem/atlassian/jira/7/7.4.4/.env diff --git a/linux/atlassian/jira/7/7.4.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.4.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.4.4/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.17/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.4/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.17/Makefile rename to linux/ecosystem/atlassian/jira/7/7.4.4/Makefile diff --git a/linux/atlassian/jira/7/7.4.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.4.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.4.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.4.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.4.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.4.5/.env b/linux/ecosystem/atlassian/jira/7/7.4.5/.env similarity index 100% rename from linux/atlassian/jira/7/7.4.5/.env rename to linux/ecosystem/atlassian/jira/7/7.4.5/.env diff --git a/linux/atlassian/jira/7/7.4.5/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.4.5/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.4.5/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.5/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.4.5/Makefile diff --git a/linux/atlassian/jira/7/7.4.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.4.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.4.5/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.4.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.4.5/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.4.6/.env b/linux/ecosystem/atlassian/jira/7/7.4.6/.env similarity index 100% rename from linux/atlassian/jira/7/7.4.6/.env rename to linux/ecosystem/atlassian/jira/7/7.4.6/.env diff --git a/linux/atlassian/jira/7/7.4.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.4.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.4.6/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.4.6/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.6/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.4.6/Makefile diff --git a/linux/atlassian/jira/7/7.4.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.4.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.4.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.4.6/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.4.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.4.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.4.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.4.6/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.5.0/.env b/linux/ecosystem/atlassian/jira/7/7.5.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.5.0/.env rename to linux/ecosystem/atlassian/jira/7/7.5.0/.env diff --git a/linux/atlassian/jira/7/7.5.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.5.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.5.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.4/Makefile rename to linux/ecosystem/atlassian/jira/7/7.5.0/Makefile diff --git a/linux/atlassian/jira/7/7.5.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.5.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.5.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.5.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.5.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.5.1/.env b/linux/ecosystem/atlassian/jira/7/7.5.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.5.1/.env rename to linux/ecosystem/atlassian/jira/7/7.5.1/.env diff --git a/linux/atlassian/jira/7/7.5.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.5.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.5.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.6/Makefile rename to linux/ecosystem/atlassian/jira/7/7.5.1/Makefile diff --git a/linux/atlassian/jira/7/7.5.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.5.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.5.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.5.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.5.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.5.2/.env b/linux/ecosystem/atlassian/jira/7/7.5.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.5.2/.env rename to linux/ecosystem/atlassian/jira/7/7.5.2/.env diff --git a/linux/atlassian/jira/7/7.5.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.5.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.5.2/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.2/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.7/Makefile rename to linux/ecosystem/atlassian/jira/7/7.5.2/Makefile diff --git a/linux/atlassian/jira/7/7.5.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.5.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.5.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.5.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.5.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.5.3/.env b/linux/ecosystem/atlassian/jira/7/7.5.3/.env similarity index 100% rename from linux/atlassian/jira/7/7.5.3/.env rename to linux/ecosystem/atlassian/jira/7/7.5.3/.env diff --git a/linux/atlassian/jira/7/7.5.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.5.3/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.5.3/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.3/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.8/Makefile rename to linux/ecosystem/atlassian/jira/7/7.5.3/Makefile diff --git a/linux/atlassian/jira/7/7.5.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.5.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.5.3/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.5.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.5.3/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.5.4/.env b/linux/ecosystem/atlassian/jira/7/7.5.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.5.4/.env rename to linux/ecosystem/atlassian/jira/7/7.5.4/.env diff --git a/linux/atlassian/jira/7/7.5.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.5.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.5.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.5.4/Dockerfile diff --git a/linux/atlassian/jira/7/7.6.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.4/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.6.9/Makefile rename to linux/ecosystem/atlassian/jira/7/7.5.4/Makefile diff --git a/linux/atlassian/jira/7/7.5.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.5.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.5.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.5.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.5.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.5.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.5.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.5.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.0/.env b/linux/ecosystem/atlassian/jira/7/7.6.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.0/.env rename to linux/ecosystem/atlassian/jira/7/7.6.0/.env diff --git a/linux/atlassian/jira/7/7.6.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.0/Dockerfile diff --git a/linux/atlassian/jira/7/7.7.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.0/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.7.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.0/Makefile diff --git a/linux/atlassian/jira/7/7.6.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.1/.env b/linux/ecosystem/atlassian/jira/7/7.6.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.1/.env rename to linux/ecosystem/atlassian/jira/7/7.6.1/.env diff --git a/linux/atlassian/jira/7/7.6.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.1/Dockerfile diff --git a/linux/atlassian/jira/7/7.7.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.1/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.7.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.1/Makefile diff --git a/linux/atlassian/jira/7/7.6.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.10/.env b/linux/ecosystem/atlassian/jira/7/7.6.10/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.10/.env rename to linux/ecosystem/atlassian/jira/7/7.6.10/.env diff --git a/linux/atlassian/jira/7/7.6.10/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.10/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.10/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.10/Dockerfile diff --git a/linux/atlassian/jira/7/7.7.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.10/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.7.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.10/Makefile diff --git a/linux/atlassian/jira/7/7.6.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.10/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.10/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.10/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.10/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.11/.env b/linux/ecosystem/atlassian/jira/7/7.6.11/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.11/.env rename to linux/ecosystem/atlassian/jira/7/7.6.11/.env diff --git a/linux/atlassian/jira/7/7.6.11/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.11/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.11/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.11/Dockerfile diff --git a/linux/atlassian/jira/7/7.7.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.11/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.7.4/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.11/Makefile diff --git a/linux/atlassian/jira/7/7.6.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.11/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.11/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.11/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.11/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.12/.env b/linux/ecosystem/atlassian/jira/7/7.6.12/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.12/.env rename to linux/ecosystem/atlassian/jira/7/7.6.12/.env diff --git a/linux/atlassian/jira/7/7.6.12/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.12/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.12/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.12/Dockerfile diff --git a/linux/atlassian/jira/7/7.8.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.12/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.8.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.12/Makefile diff --git a/linux/atlassian/jira/7/7.6.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.12/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.12/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.12/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.12/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.12/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.12/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.13/.env b/linux/ecosystem/atlassian/jira/7/7.6.13/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.13/.env rename to linux/ecosystem/atlassian/jira/7/7.6.13/.env diff --git a/linux/atlassian/jira/7/7.6.13/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.13/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.13/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.13/Dockerfile diff --git a/linux/atlassian/jira/7/7.8.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.13/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.8.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.13/Makefile diff --git a/linux/atlassian/jira/7/7.6.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.13/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.13/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.13/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.13/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.13/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.13/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.14/.env b/linux/ecosystem/atlassian/jira/7/7.6.14/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.14/.env rename to linux/ecosystem/atlassian/jira/7/7.6.14/.env diff --git a/linux/atlassian/jira/7/7.6.14/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.14/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.14/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.14/Dockerfile diff --git a/linux/atlassian/jira/7/7.8.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.14/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.8.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.14/Makefile diff --git a/linux/atlassian/jira/7/7.6.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.14/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.14/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.14/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.14/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.14/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.14/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.15/.env b/linux/ecosystem/atlassian/jira/7/7.6.15/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.15/.env rename to linux/ecosystem/atlassian/jira/7/7.6.15/.env diff --git a/linux/atlassian/jira/7/7.6.15/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.15/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.15/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.15/Dockerfile diff --git a/linux/atlassian/jira/7/7.8.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.15/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.8.4/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.15/Makefile diff --git a/linux/atlassian/jira/7/7.6.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.15/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.15/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.15/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.15/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.15/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.15/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.16/.env b/linux/ecosystem/atlassian/jira/7/7.6.16/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.16/.env rename to linux/ecosystem/atlassian/jira/7/7.6.16/.env diff --git a/linux/atlassian/jira/7/7.6.16/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.16/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.16/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.16/Dockerfile diff --git a/linux/atlassian/jira/7/7.9.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.16/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.9.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.16/Makefile diff --git a/linux/atlassian/jira/7/7.6.16/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.16/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.16/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.16/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.16/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.16/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.16/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.16/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.17/.env b/linux/ecosystem/atlassian/jira/7/7.6.17/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.17/.env rename to linux/ecosystem/atlassian/jira/7/7.6.17/.env diff --git a/linux/atlassian/jira/7/7.6.17/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.17/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.17/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.17/Dockerfile diff --git a/linux/atlassian/jira/7/7.9.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.17/Makefile similarity index 100% rename from linux/atlassian/jira/7/7.9.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.17/Makefile diff --git a/linux/atlassian/jira/7/7.6.17/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.17/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.17/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.17/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.17/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.17/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.17/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.17/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.2/.env b/linux/ecosystem/atlassian/jira/7/7.6.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.2/.env rename to linux/ecosystem/atlassian/jira/7/7.6.2/.env diff --git a/linux/atlassian/jira/7/7.6.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.0.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.0.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.2/Makefile diff --git a/linux/atlassian/jira/7/7.6.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.3/.env b/linux/ecosystem/atlassian/jira/7/7.6.3/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.3/.env rename to linux/ecosystem/atlassian/jira/7/7.6.3/.env diff --git a/linux/atlassian/jira/7/7.6.3/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.3/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.3/Dockerfile diff --git a/linux/atlassian/jira/8/8.0.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.3/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.0.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.3/Makefile diff --git a/linux/atlassian/jira/7/7.6.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.3/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.3/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.4/.env b/linux/ecosystem/atlassian/jira/7/7.6.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.4/.env rename to linux/ecosystem/atlassian/jira/7/7.6.4/.env diff --git a/linux/atlassian/jira/7/7.6.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.4/Dockerfile diff --git a/linux/atlassian/jira/8/8.0.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.4/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.0.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.4/Makefile diff --git a/linux/atlassian/jira/7/7.6.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.6/.env b/linux/ecosystem/atlassian/jira/7/7.6.6/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.6/.env rename to linux/ecosystem/atlassian/jira/7/7.6.6/.env diff --git a/linux/atlassian/jira/7/7.6.6/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.6/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.6/Dockerfile diff --git a/linux/atlassian/jira/8/8.1.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.6/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.1.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.6/Makefile diff --git a/linux/atlassian/jira/7/7.6.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.6/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.6/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.7/.env b/linux/ecosystem/atlassian/jira/7/7.6.7/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.7/.env rename to linux/ecosystem/atlassian/jira/7/7.6.7/.env diff --git a/linux/atlassian/jira/7/7.6.7/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.7/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.7/Dockerfile diff --git a/linux/atlassian/jira/8/8.1.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.7/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.1.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.7/Makefile diff --git a/linux/atlassian/jira/7/7.6.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.7/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.7/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.8/.env b/linux/ecosystem/atlassian/jira/7/7.6.8/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.8/.env rename to linux/ecosystem/atlassian/jira/7/7.6.8/.env diff --git a/linux/atlassian/jira/7/7.6.8/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.8/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.8/Dockerfile diff --git a/linux/atlassian/jira/8/8.1.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.8/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.1.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.8/Makefile diff --git a/linux/atlassian/jira/7/7.6.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.8/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.8/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.6.9/.env b/linux/ecosystem/atlassian/jira/7/7.6.9/.env similarity index 100% rename from linux/atlassian/jira/7/7.6.9/.env rename to linux/ecosystem/atlassian/jira/7/7.6.9/.env diff --git a/linux/atlassian/jira/7/7.6.9/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.6.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.6.9/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.6.9/Dockerfile diff --git a/linux/atlassian/jira/8/8.1.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.9/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.1.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.6.9/Makefile diff --git a/linux/atlassian/jira/7/7.6.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.6.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.6.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.6.9/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.6.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.6.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.6.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.6.9/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.7.0/.env b/linux/ecosystem/atlassian/jira/7/7.7.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.7.0/.env rename to linux/ecosystem/atlassian/jira/7/7.7.0/.env diff --git a/linux/atlassian/jira/7/7.7.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.7.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.7.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.7.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.10.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.10.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.7.0/Makefile diff --git a/linux/atlassian/jira/7/7.7.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.7.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.7.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.7.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.7.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.7.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.7.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.7.1/.env b/linux/ecosystem/atlassian/jira/7/7.7.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.7.1/.env rename to linux/ecosystem/atlassian/jira/7/7.7.1/.env diff --git a/linux/atlassian/jira/7/7.7.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.7.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.7.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.7.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.10.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.10.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.7.1/Makefile diff --git a/linux/atlassian/jira/7/7.7.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.7.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.7.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.7.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.7.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.7.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.7.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.7.2/.env b/linux/ecosystem/atlassian/jira/7/7.7.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.7.2/.env rename to linux/ecosystem/atlassian/jira/7/7.7.2/.env diff --git a/linux/atlassian/jira/7/7.7.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.7.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.7.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.7.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.11.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.11.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.7.2/Makefile diff --git a/linux/atlassian/jira/7/7.7.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.7.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.7.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.7.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.7.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.7.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.7.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.7.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.7.4/.env b/linux/ecosystem/atlassian/jira/7/7.7.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.7.4/.env rename to linux/ecosystem/atlassian/jira/7/7.7.4/.env diff --git a/linux/atlassian/jira/7/7.7.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.7.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.7.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.7.4/Dockerfile diff --git a/linux/atlassian/jira/8/8.11.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.4/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.11.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.7.4/Makefile diff --git a/linux/atlassian/jira/7/7.7.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.7.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.7.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.7.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.7.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.7.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.7.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.7.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.8.0/.env b/linux/ecosystem/atlassian/jira/7/7.8.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.8.0/.env rename to linux/ecosystem/atlassian/jira/7/7.8.0/.env diff --git a/linux/atlassian/jira/7/7.8.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.8.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.8.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.8.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.12.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.12.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.8.0/Makefile diff --git a/linux/atlassian/jira/7/7.8.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.8.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.8.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.8.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.8.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.8.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.8.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.8.1/.env b/linux/ecosystem/atlassian/jira/7/7.8.1/.env similarity index 100% rename from linux/atlassian/jira/7/7.8.1/.env rename to linux/ecosystem/atlassian/jira/7/7.8.1/.env diff --git a/linux/atlassian/jira/7/7.8.1/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.8.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.8.1/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.8.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.12.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.12.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.8.1/Makefile diff --git a/linux/atlassian/jira/7/7.8.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.8.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.8.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.8.1/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.8.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.8.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.8.1/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.8.2/.env b/linux/ecosystem/atlassian/jira/7/7.8.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.8.2/.env rename to linux/ecosystem/atlassian/jira/7/7.8.2/.env diff --git a/linux/atlassian/jira/7/7.8.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.8.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.8.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.8.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.12.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.12.2/Makefile rename to linux/ecosystem/atlassian/jira/7/7.8.2/Makefile diff --git a/linux/atlassian/jira/7/7.8.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.8.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.8.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.8.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.8.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.8.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.8.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.8.2/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.8.4/.env b/linux/ecosystem/atlassian/jira/7/7.8.4/.env similarity index 100% rename from linux/atlassian/jira/7/7.8.4/.env rename to linux/ecosystem/atlassian/jira/7/7.8.4/.env diff --git a/linux/atlassian/jira/7/7.8.4/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.8.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.8.4/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.8.4/Dockerfile diff --git a/linux/atlassian/jira/8/8.12.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.4/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.12.3/Makefile rename to linux/ecosystem/atlassian/jira/7/7.8.4/Makefile diff --git a/linux/atlassian/jira/7/7.8.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.8.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.8.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.8.4/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.8.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.8.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.8.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.8.4/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.9.0/.env b/linux/ecosystem/atlassian/jira/7/7.9.0/.env similarity index 100% rename from linux/atlassian/jira/7/7.9.0/.env rename to linux/ecosystem/atlassian/jira/7/7.9.0/.env diff --git a/linux/atlassian/jira/7/7.9.0/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.9.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.9.0/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.9.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.9.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.13.0/Makefile rename to linux/ecosystem/atlassian/jira/7/7.9.0/Makefile diff --git a/linux/atlassian/jira/7/7.9.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.9.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.9.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.9.0/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.9.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.9.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.9.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.9.0/entrypoint.sh diff --git a/linux/atlassian/jira/7/7.9.2/.env b/linux/ecosystem/atlassian/jira/7/7.9.2/.env similarity index 100% rename from linux/atlassian/jira/7/7.9.2/.env rename to linux/ecosystem/atlassian/jira/7/7.9.2/.env diff --git a/linux/atlassian/jira/7/7.9.2/Dockerfile b/linux/ecosystem/atlassian/jira/7/7.9.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/7/7.9.2/Dockerfile rename to linux/ecosystem/atlassian/jira/7/7.9.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.9.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.13.1/Makefile rename to linux/ecosystem/atlassian/jira/7/7.9.2/Makefile diff --git a/linux/atlassian/jira/7/7.9.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/7/7.9.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/7/7.9.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/7/7.9.2/docker-compose.yml diff --git a/linux/atlassian/jira/7/7.9.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.9.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/7/7.9.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/7/7.9.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.0.0/.env b/linux/ecosystem/atlassian/jira/8/8.0.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.0.0/.env rename to linux/ecosystem/atlassian/jira/8/8.0.0/.env diff --git a/linux/atlassian/jira/8/8.0.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.0.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.0.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.0.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.0.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.13.2/Makefile rename to linux/ecosystem/atlassian/jira/8/8.0.0/Makefile diff --git a/linux/atlassian/jira/8/8.0.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.0.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.0.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.0.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.0.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.0.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.0.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.0.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.0.2/.env b/linux/ecosystem/atlassian/jira/8/8.0.2/.env similarity index 100% rename from linux/atlassian/jira/8/8.0.2/.env rename to linux/ecosystem/atlassian/jira/8/8.0.2/.env diff --git a/linux/atlassian/jira/8/8.0.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.0.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.0.2/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.0.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.0.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.13.3/Makefile rename to linux/ecosystem/atlassian/jira/8/8.0.2/Makefile diff --git a/linux/atlassian/jira/8/8.0.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.0.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.0.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.0.2/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.0.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.0.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.0.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.0.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.0.3/.env b/linux/ecosystem/atlassian/jira/8/8.0.3/.env similarity index 100% rename from linux/atlassian/jira/8/8.0.3/.env rename to linux/ecosystem/atlassian/jira/8/8.0.3/.env diff --git a/linux/atlassian/jira/8/8.0.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.0.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.0.3/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.0.3/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.0.3/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.13.4/Makefile rename to linux/ecosystem/atlassian/jira/8/8.0.3/Makefile diff --git a/linux/atlassian/jira/8/8.0.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.0.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.0.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.0.3/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.0.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.0.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.0.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.0.3/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.1.0/.env b/linux/ecosystem/atlassian/jira/8/8.1.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.1.0/.env rename to linux/ecosystem/atlassian/jira/8/8.1.0/.env diff --git a/linux/atlassian/jira/8/8.1.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.1.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.1.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.1.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.13.5/Makefile rename to linux/ecosystem/atlassian/jira/8/8.1.0/Makefile diff --git a/linux/atlassian/jira/8/8.1.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.1.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.1.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.1.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.1.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.1.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.1.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.1.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.1.1/.env b/linux/ecosystem/atlassian/jira/8/8.1.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.1.1/.env rename to linux/ecosystem/atlassian/jira/8/8.1.1/.env diff --git a/linux/atlassian/jira/8/8.1.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.1.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.1.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.1.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.6/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.13.6/Makefile rename to linux/ecosystem/atlassian/jira/8/8.1.1/Makefile diff --git a/linux/atlassian/jira/8/8.1.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.1.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.1.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.1.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.1.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.1.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.1.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.1.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.1.2/.env b/linux/ecosystem/atlassian/jira/8/8.1.2/.env similarity index 100% rename from linux/atlassian/jira/8/8.1.2/.env rename to linux/ecosystem/atlassian/jira/8/8.1.2/.env diff --git a/linux/atlassian/jira/8/8.1.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.1.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.1.2/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.1.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.7/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.13.7/Makefile rename to linux/ecosystem/atlassian/jira/8/8.1.2/Makefile diff --git a/linux/atlassian/jira/8/8.1.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.1.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.1.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.1.2/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.1.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.1.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.1.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.1.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.1.3/.env b/linux/ecosystem/atlassian/jira/8/8.1.3/.env similarity index 100% rename from linux/atlassian/jira/8/8.1.3/.env rename to linux/ecosystem/atlassian/jira/8/8.1.3/.env diff --git a/linux/atlassian/jira/8/8.1.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.1.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.1.3/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.1.3/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.8/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.3/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.13.8/Makefile rename to linux/ecosystem/atlassian/jira/8/8.1.3/Makefile diff --git a/linux/atlassian/jira/8/8.1.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.1.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.1.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.1.3/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.1.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.1.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.1.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.1.3/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.10.0/.env b/linux/ecosystem/atlassian/jira/8/8.10.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.10.0/.env rename to linux/ecosystem/atlassian/jira/8/8.10.0/.env diff --git a/linux/atlassian/jira/8/8.10.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.10.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.10.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.10.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.10.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.14.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.10.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.14.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.10.0/Makefile diff --git a/linux/atlassian/jira/8/8.10.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.10.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.10.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.10.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.10.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.10.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.10.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.10.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.10.1/.env b/linux/ecosystem/atlassian/jira/8/8.10.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.10.1/.env rename to linux/ecosystem/atlassian/jira/8/8.10.1/.env diff --git a/linux/atlassian/jira/8/8.10.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.10.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.10.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.10.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.10.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.14.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.10.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.14.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.10.1/Makefile diff --git a/linux/atlassian/jira/8/8.10.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.10.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.10.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.10.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.10.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.10.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.10.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.10.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.11.0/.env b/linux/ecosystem/atlassian/jira/8/8.11.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.11.0/.env rename to linux/ecosystem/atlassian/jira/8/8.11.0/.env diff --git a/linux/atlassian/jira/8/8.11.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.11.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.11.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.11.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.11.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.15.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.11.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.15.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.11.0/Makefile diff --git a/linux/atlassian/jira/8/8.11.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.11.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.11.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.11.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.11.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.11.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.11.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.11.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.11.1/.env b/linux/ecosystem/atlassian/jira/8/8.11.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.11.1/.env rename to linux/ecosystem/atlassian/jira/8/8.11.1/.env diff --git a/linux/atlassian/jira/8/8.11.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.11.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.11.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.11.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.11.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.15.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.11.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.15.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.11.1/Makefile diff --git a/linux/atlassian/jira/8/8.11.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.11.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.11.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.11.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.11.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.11.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.11.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.11.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.12.0/.env b/linux/ecosystem/atlassian/jira/8/8.12.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.12.0/.env rename to linux/ecosystem/atlassian/jira/8/8.12.0/.env diff --git a/linux/atlassian/jira/8/8.12.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.12.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.12.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.12.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.12.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.16.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.16.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.12.0/Makefile diff --git a/linux/atlassian/jira/8/8.12.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.12.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.12.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.12.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.12.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.12.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.12.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.12.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.12.1/.env b/linux/ecosystem/atlassian/jira/8/8.12.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.12.1/.env rename to linux/ecosystem/atlassian/jira/8/8.12.1/.env diff --git a/linux/atlassian/jira/8/8.12.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.12.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.12.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.12.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.12.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.16.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.16.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.12.1/Makefile diff --git a/linux/atlassian/jira/8/8.12.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.12.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.12.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.12.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.12.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.12.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.12.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.12.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.12.2/.env b/linux/ecosystem/atlassian/jira/8/8.12.2/.env similarity index 100% rename from linux/atlassian/jira/8/8.12.2/.env rename to linux/ecosystem/atlassian/jira/8/8.12.2/.env diff --git a/linux/atlassian/jira/8/8.12.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.12.2/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.12.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.12.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.12.2/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.16.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.16.2/Makefile rename to linux/ecosystem/atlassian/jira/8/8.12.2/Makefile diff --git a/linux/atlassian/jira/8/8.12.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.12.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.12.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.12.2/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.12.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.12.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.12.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.12.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.12.3/.env b/linux/ecosystem/atlassian/jira/8/8.12.3/.env similarity index 100% rename from linux/atlassian/jira/8/8.12.3/.env rename to linux/ecosystem/atlassian/jira/8/8.12.3/.env diff --git a/linux/atlassian/jira/8/8.12.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.12.3/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile diff --git a/linux/atlassian/jira/8/8.12.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.12.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.12.3/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.17.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.3/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.17.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.12.3/Makefile diff --git a/linux/atlassian/jira/8/8.12.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.12.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.12.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.12.3/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.12.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.12.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.12.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.12.3/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.0/.env b/linux/ecosystem/atlassian/jira/8/8.13.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.13.0/.env rename to linux/ecosystem/atlassian/jira/8/8.13.0/.env diff --git a/linux/atlassian/jira/8/8.13.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.13.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.13.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.13.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.17.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.17.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.13.0/Makefile diff --git a/linux/atlassian/jira/8/8.13.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.13.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.13.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.13.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.13.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.13.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.1/.env b/linux/ecosystem/atlassian/jira/8/8.13.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.13.1/.env rename to linux/ecosystem/atlassian/jira/8/8.13.1/.env diff --git a/linux/atlassian/jira/8/8.13.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.13.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.13.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.13.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.2.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.2.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.13.1/Makefile diff --git a/linux/atlassian/jira/8/8.13.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.13.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.13.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.13.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.13.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.13.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.2/.env b/linux/ecosystem/atlassian/jira/8/8.13.2/.env similarity index 100% rename from linux/atlassian/jira/8/8.13.2/.env rename to linux/ecosystem/atlassian/jira/8/8.13.2/.env diff --git a/linux/atlassian/jira/8/8.13.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.13.2/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.13.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.13.2/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.2.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.2.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.13.2/Makefile diff --git a/linux/atlassian/jira/8/8.13.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.13.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.13.2/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.13.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.13.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.13.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.3/.env b/linux/ecosystem/atlassian/jira/8/8.13.3/.env similarity index 100% rename from linux/atlassian/jira/8/8.13.3/.env rename to linux/ecosystem/atlassian/jira/8/8.13.3/.env diff --git a/linux/atlassian/jira/8/8.13.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.13.3/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.13.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.13.3/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.2.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.3/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.2.2/Makefile rename to linux/ecosystem/atlassian/jira/8/8.13.3/Makefile diff --git a/linux/atlassian/jira/8/8.13.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.13.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.13.3/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.13.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.13.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.13.3/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.4/.env b/linux/ecosystem/atlassian/jira/8/8.13.4/.env similarity index 100% rename from linux/atlassian/jira/8/8.13.4/.env rename to linux/ecosystem/atlassian/jira/8/8.13.4/.env diff --git a/linux/atlassian/jira/8/8.13.4/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.13.4/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.13.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.13.4/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.2.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.4/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.2.3/Makefile rename to linux/ecosystem/atlassian/jira/8/8.13.4/Makefile diff --git a/linux/atlassian/jira/8/8.13.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.13.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.13.4/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.13.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.13.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.13.4/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.5/.env b/linux/ecosystem/atlassian/jira/8/8.13.5/.env similarity index 100% rename from linux/atlassian/jira/8/8.13.5/.env rename to linux/ecosystem/atlassian/jira/8/8.13.5/.env diff --git a/linux/atlassian/jira/8/8.13.5/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.13.5/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.13.5/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.13.5/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.2.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.5/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.2.4/Makefile rename to linux/ecosystem/atlassian/jira/8/8.13.5/Makefile diff --git a/linux/atlassian/jira/8/8.13.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.13.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.13.5/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.13.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.13.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.13.5/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.6/.env b/linux/ecosystem/atlassian/jira/8/8.13.6/.env similarity index 100% rename from linux/atlassian/jira/8/8.13.6/.env rename to linux/ecosystem/atlassian/jira/8/8.13.6/.env diff --git a/linux/atlassian/jira/8/8.13.6/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.13.6/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.13.6/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.13.6/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.2.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.6/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.2.5/Makefile rename to linux/ecosystem/atlassian/jira/8/8.13.6/Makefile diff --git a/linux/atlassian/jira/8/8.13.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.13.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.13.6/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.13.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.13.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.13.6/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.7/.env b/linux/ecosystem/atlassian/jira/8/8.13.7/.env similarity index 100% rename from linux/atlassian/jira/8/8.13.7/.env rename to linux/ecosystem/atlassian/jira/8/8.13.7/.env diff --git a/linux/atlassian/jira/8/8.13.7/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.13.7/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.7/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.13.7/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.13.7/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.2.6/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.7/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.2.6/Makefile rename to linux/ecosystem/atlassian/jira/8/8.13.7/Makefile diff --git a/linux/atlassian/jira/8/8.13.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.13.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.13.7/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.13.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.13.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.13.7/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.13.8/.env b/linux/ecosystem/atlassian/jira/8/8.13.8/.env similarity index 100% rename from linux/atlassian/jira/8/8.13.8/.env rename to linux/ecosystem/atlassian/jira/8/8.13.8/.env diff --git a/linux/atlassian/jira/8/8.13.8/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.13.8/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile diff --git a/linux/atlassian/jira/8/8.13.8/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.13.8/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.13.8/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.3.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.8/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.3.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.13.8/Makefile diff --git a/linux/atlassian/jira/8/8.13.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.13.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.13.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.13.8/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.13.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.13.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.13.8/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.14.0/.env b/linux/ecosystem/atlassian/jira/8/8.14.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.14.0/.env rename to linux/ecosystem/atlassian/jira/8/8.14.0/.env diff --git a/linux/atlassian/jira/8/8.14.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.14.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.14.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.14.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.14.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.3.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.14.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.3.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.14.0/Makefile diff --git a/linux/atlassian/jira/8/8.14.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.14.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.14.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.14.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.14.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.14.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.14.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.14.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.14.1/.env b/linux/ecosystem/atlassian/jira/8/8.14.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.14.1/.env rename to linux/ecosystem/atlassian/jira/8/8.14.1/.env diff --git a/linux/atlassian/jira/8/8.14.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.14.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.14.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.14.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.14.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.3.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.14.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.3.2/Makefile rename to linux/ecosystem/atlassian/jira/8/8.14.1/Makefile diff --git a/linux/atlassian/jira/8/8.14.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.14.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.14.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.14.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.14.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.14.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.14.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.14.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.15.0/.env b/linux/ecosystem/atlassian/jira/8/8.15.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.15.0/.env rename to linux/ecosystem/atlassian/jira/8/8.15.0/.env diff --git a/linux/atlassian/jira/8/8.15.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.15.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.15.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.15.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.15.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.3.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.15.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.3.3/Makefile rename to linux/ecosystem/atlassian/jira/8/8.15.0/Makefile diff --git a/linux/atlassian/jira/8/8.15.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.15.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.15.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.15.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.15.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.15.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.15.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.15.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.15.1/.env b/linux/ecosystem/atlassian/jira/8/8.15.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.15.1/.env rename to linux/ecosystem/atlassian/jira/8/8.15.1/.env diff --git a/linux/atlassian/jira/8/8.15.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.15.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.15.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.15.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.15.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.3.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.15.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.3.4/Makefile rename to linux/ecosystem/atlassian/jira/8/8.15.1/Makefile diff --git a/linux/atlassian/jira/8/8.15.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.15.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.15.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.15.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.15.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.15.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.15.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.15.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.16.0/.env b/linux/ecosystem/atlassian/jira/8/8.16.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.16.0/.env rename to linux/ecosystem/atlassian/jira/8/8.16.0/.env diff --git a/linux/atlassian/jira/8/8.16.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.16.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.16.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.16.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.16.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.3.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.16.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.3.5/Makefile rename to linux/ecosystem/atlassian/jira/8/8.16.0/Makefile diff --git a/linux/atlassian/jira/8/8.16.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.16.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.16.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.16.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.16.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.16.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.16.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.16.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.16.1/.env b/linux/ecosystem/atlassian/jira/8/8.16.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.16.1/.env rename to linux/ecosystem/atlassian/jira/8/8.16.1/.env diff --git a/linux/atlassian/jira/8/8.16.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.16.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.16.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.16.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.16.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.4.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.16.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.4.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.16.1/Makefile diff --git a/linux/atlassian/jira/8/8.16.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.16.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.16.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.16.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.16.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.16.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.16.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.16.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.16.2/.env b/linux/ecosystem/atlassian/jira/8/8.16.2/.env similarity index 100% rename from linux/atlassian/jira/8/8.16.2/.env rename to linux/ecosystem/atlassian/jira/8/8.16.2/.env diff --git a/linux/atlassian/jira/8/8.16.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.16.2/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.16.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.16.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.16.2/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.4.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.16.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.4.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.16.2/Makefile diff --git a/linux/atlassian/jira/8/8.16.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.16.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.16.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.16.2/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.16.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.16.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.16.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.16.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.17.0/.env b/linux/ecosystem/atlassian/jira/8/8.17.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.17.0/.env rename to linux/ecosystem/atlassian/jira/8/8.17.0/.env diff --git a/linux/atlassian/jira/8/8.17.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.17.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.17.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.17.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.17.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.4.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.17.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.4.2/Makefile rename to linux/ecosystem/atlassian/jira/8/8.17.0/Makefile diff --git a/linux/atlassian/jira/8/8.17.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.17.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.17.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.17.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.17.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.17.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.17.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.17.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.17.1/.env b/linux/ecosystem/atlassian/jira/8/8.17.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.17.1/.env rename to linux/ecosystem/atlassian/jira/8/8.17.1/.env diff --git a/linux/atlassian/jira/8/8.17.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.17.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.17.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.17.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.17.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.4.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.17.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.4.3/Makefile rename to linux/ecosystem/atlassian/jira/8/8.17.1/Makefile diff --git a/linux/atlassian/jira/8/8.17.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.17.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.17.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.17.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.17.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.17.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.17.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.17.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.2.0/.env b/linux/ecosystem/atlassian/jira/8/8.2.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.2.0/.env rename to linux/ecosystem/atlassian/jira/8/8.2.0/.env diff --git a/linux/atlassian/jira/8/8.2.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.2.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.2.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.2.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.2.0/Makefile diff --git a/linux/atlassian/jira/8/8.2.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.2.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.2.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.2.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.2.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.2.1/.env b/linux/ecosystem/atlassian/jira/8/8.2.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.2.1/.env rename to linux/ecosystem/atlassian/jira/8/8.2.1/.env diff --git a/linux/atlassian/jira/8/8.2.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.2.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.2.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.2.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.2.1/Makefile diff --git a/linux/atlassian/jira/8/8.2.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.2.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.2.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.2.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.2.2/.env b/linux/ecosystem/atlassian/jira/8/8.2.2/.env similarity index 100% rename from linux/atlassian/jira/8/8.2.2/.env rename to linux/ecosystem/atlassian/jira/8/8.2.2/.env diff --git a/linux/atlassian/jira/8/8.2.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.2.2/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.2.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.2.2/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.10/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.10/Makefile rename to linux/ecosystem/atlassian/jira/8/8.2.2/Makefile diff --git a/linux/atlassian/jira/8/8.2.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.2.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.2.2/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.2.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.2.3/.env b/linux/ecosystem/atlassian/jira/8/8.2.3/.env similarity index 100% rename from linux/atlassian/jira/8/8.2.3/.env rename to linux/ecosystem/atlassian/jira/8/8.2.3/.env diff --git a/linux/atlassian/jira/8/8.2.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.2.3/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile diff --git a/linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.2.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.2.3/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.11/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.3/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.11/Makefile rename to linux/ecosystem/atlassian/jira/8/8.2.3/Makefile diff --git a/linux/atlassian/jira/8/8.2.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.2.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.2.3/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.2.3/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.2.4/.env b/linux/ecosystem/atlassian/jira/8/8.2.4/.env similarity index 100% rename from linux/atlassian/jira/8/8.2.4/.env rename to linux/ecosystem/atlassian/jira/8/8.2.4/.env diff --git a/linux/atlassian/jira/8/8.2.4/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.2.4/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile diff --git a/linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.2.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.2.4/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.12/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.4/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.12/Makefile rename to linux/ecosystem/atlassian/jira/8/8.2.4/Makefile diff --git a/linux/atlassian/jira/8/8.2.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.2.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.2.4/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.2.4/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.2.5/.env b/linux/ecosystem/atlassian/jira/8/8.2.5/.env similarity index 100% rename from linux/atlassian/jira/8/8.2.5/.env rename to linux/ecosystem/atlassian/jira/8/8.2.5/.env diff --git a/linux/atlassian/jira/8/8.2.5/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.2.5/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile diff --git a/linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.2.5/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.2.5/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.13/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.5/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.13/Makefile rename to linux/ecosystem/atlassian/jira/8/8.2.5/Makefile diff --git a/linux/atlassian/jira/8/8.2.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.2.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.2.5/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.2.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.2.5/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.2.6/.env b/linux/ecosystem/atlassian/jira/8/8.2.6/.env similarity index 100% rename from linux/atlassian/jira/8/8.2.6/.env rename to linux/ecosystem/atlassian/jira/8/8.2.6/.env diff --git a/linux/atlassian/jira/8/8.2.6/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.2.6/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile diff --git a/linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.2.6/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.2.6/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.14/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.6/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.14/Makefile rename to linux/ecosystem/atlassian/jira/8/8.2.6/Makefile diff --git a/linux/atlassian/jira/8/8.2.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.2.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.2.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.2.6/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.2.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.2.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.2.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.2.6/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.3.0/.env b/linux/ecosystem/atlassian/jira/8/8.3.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.3.0/.env rename to linux/ecosystem/atlassian/jira/8/8.3.0/.env diff --git a/linux/atlassian/jira/8/8.3.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.3.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.3.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.3.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.15/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.15/Makefile rename to linux/ecosystem/atlassian/jira/8/8.3.0/Makefile diff --git a/linux/atlassian/jira/8/8.3.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.3.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.3.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.3.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.3.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.3.1/.env b/linux/ecosystem/atlassian/jira/8/8.3.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.3.1/.env rename to linux/ecosystem/atlassian/jira/8/8.3.1/.env diff --git a/linux/atlassian/jira/8/8.3.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.3.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.3.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.3.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.16/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.16/Makefile rename to linux/ecosystem/atlassian/jira/8/8.3.1/Makefile diff --git a/linux/atlassian/jira/8/8.3.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.3.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.3.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.3.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.3.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.3.2/.env b/linux/ecosystem/atlassian/jira/8/8.3.2/.env similarity index 100% rename from linux/atlassian/jira/8/8.3.2/.env rename to linux/ecosystem/atlassian/jira/8/8.3.2/.env diff --git a/linux/atlassian/jira/8/8.3.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.3.2/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.3.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.3.2/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.2/Makefile rename to linux/ecosystem/atlassian/jira/8/8.3.2/Makefile diff --git a/linux/atlassian/jira/8/8.3.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.3.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.3.2/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.3.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.3.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.3.3/.env b/linux/ecosystem/atlassian/jira/8/8.3.3/.env similarity index 100% rename from linux/atlassian/jira/8/8.3.3/.env rename to linux/ecosystem/atlassian/jira/8/8.3.3/.env diff --git a/linux/atlassian/jira/8/8.3.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.3.3/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile diff --git a/linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.3.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.3.3/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.3/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.3/Makefile rename to linux/ecosystem/atlassian/jira/8/8.3.3/Makefile diff --git a/linux/atlassian/jira/8/8.3.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.3.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.3.3/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.3.3/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.3.4/.env b/linux/ecosystem/atlassian/jira/8/8.3.4/.env similarity index 100% rename from linux/atlassian/jira/8/8.3.4/.env rename to linux/ecosystem/atlassian/jira/8/8.3.4/.env diff --git a/linux/atlassian/jira/8/8.3.4/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.3.4/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile diff --git a/linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.3.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.3.4/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.4/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.4/Makefile rename to linux/ecosystem/atlassian/jira/8/8.3.4/Makefile diff --git a/linux/atlassian/jira/8/8.3.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.3.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.3.4/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.3.4/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.3.5/.env b/linux/ecosystem/atlassian/jira/8/8.3.5/.env similarity index 100% rename from linux/atlassian/jira/8/8.3.5/.env rename to linux/ecosystem/atlassian/jira/8/8.3.5/.env diff --git a/linux/atlassian/jira/8/8.3.5/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.3.5/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile diff --git a/linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.3.5/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.3.5/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.5/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.5/Makefile rename to linux/ecosystem/atlassian/jira/8/8.3.5/Makefile diff --git a/linux/atlassian/jira/8/8.3.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.3.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.3.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.3.5/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.3.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.3.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.3.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.3.5/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.4.0/.env b/linux/ecosystem/atlassian/jira/8/8.4.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.4.0/.env rename to linux/ecosystem/atlassian/jira/8/8.4.0/.env diff --git a/linux/atlassian/jira/8/8.4.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.4.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.4.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.4.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.6/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.6/Makefile rename to linux/ecosystem/atlassian/jira/8/8.4.0/Makefile diff --git a/linux/atlassian/jira/8/8.4.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.4.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.4.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.4.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.4.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.4.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.4.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.4.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.4.1/.env b/linux/ecosystem/atlassian/jira/8/8.4.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.4.1/.env rename to linux/ecosystem/atlassian/jira/8/8.4.1/.env diff --git a/linux/atlassian/jira/8/8.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.4.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.4.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.4.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.7/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.7/Makefile rename to linux/ecosystem/atlassian/jira/8/8.4.1/Makefile diff --git a/linux/atlassian/jira/8/8.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.4.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.4.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.4.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.4.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.4.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.4.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.4.2/.env b/linux/ecosystem/atlassian/jira/8/8.4.2/.env similarity index 100% rename from linux/atlassian/jira/8/8.4.2/.env rename to linux/ecosystem/atlassian/jira/8/8.4.2/.env diff --git a/linux/atlassian/jira/8/8.4.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.4.2/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.4.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.4.2/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.8/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.2/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.8/Makefile rename to linux/ecosystem/atlassian/jira/8/8.4.2/Makefile diff --git a/linux/atlassian/jira/8/8.4.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.4.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.4.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.4.2/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.4.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.4.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.4.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.4.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.4.3/.env b/linux/ecosystem/atlassian/jira/8/8.4.3/.env similarity index 100% rename from linux/atlassian/jira/8/8.4.3/.env rename to linux/ecosystem/atlassian/jira/8/8.4.3/.env diff --git a/linux/atlassian/jira/8/8.4.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.4.3/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile diff --git a/linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.4.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.4.3/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.5.9/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.3/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.5.9/Makefile rename to linux/ecosystem/atlassian/jira/8/8.4.3/Makefile diff --git a/linux/atlassian/jira/8/8.4.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.4.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.4.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.4.3/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.4.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.4.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.4.3/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.0/.env b/linux/ecosystem/atlassian/jira/8/8.5.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.0/.env rename to linux/ecosystem/atlassian/jira/8/8.5.0/.env diff --git a/linux/atlassian/jira/8/8.5.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.0/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.6.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.0/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.6.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.0/Makefile diff --git a/linux/atlassian/jira/8/8.5.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.1/.env b/linux/ecosystem/atlassian/jira/8/8.5.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.1/.env rename to linux/ecosystem/atlassian/jira/8/8.5.1/.env diff --git a/linux/atlassian/jira/8/8.5.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.1/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.6.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.1/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.6.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.1/Makefile diff --git a/linux/atlassian/jira/8/8.5.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.10/.env b/linux/ecosystem/atlassian/jira/8/8.5.10/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.10/.env rename to linux/ecosystem/atlassian/jira/8/8.5.10/.env diff --git a/linux/atlassian/jira/8/8.5.10/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.10/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.10/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.10/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.10/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.7.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.10/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.7.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.10/Makefile diff --git a/linux/atlassian/jira/8/8.5.10/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.10/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.10/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.10/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.10/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.10/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.10/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.11/.env b/linux/ecosystem/atlassian/jira/8/8.5.11/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.11/.env rename to linux/ecosystem/atlassian/jira/8/8.5.11/.env diff --git a/linux/atlassian/jira/8/8.5.11/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.11/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.11/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.11/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.11/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.7.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.11/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.7.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.11/Makefile diff --git a/linux/atlassian/jira/8/8.5.11/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.11/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.11/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.11/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.11/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.11/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.11/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.12/.env b/linux/ecosystem/atlassian/jira/8/8.5.12/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.12/.env rename to linux/ecosystem/atlassian/jira/8/8.5.12/.env diff --git a/linux/atlassian/jira/8/8.5.12/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.12/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.12/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.12/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.12/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.8.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.12/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.8.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.12/Makefile diff --git a/linux/atlassian/jira/8/8.5.12/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.12/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.12/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.12/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.12/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.12/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.12/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.13/.env b/linux/ecosystem/atlassian/jira/8/8.5.13/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.13/.env rename to linux/ecosystem/atlassian/jira/8/8.5.13/.env diff --git a/linux/atlassian/jira/8/8.5.13/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.13/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.13/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.13/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.13/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.8.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.13/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.8.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.13/Makefile diff --git a/linux/atlassian/jira/8/8.5.13/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.13/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.13/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.13/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.13/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.13/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.13/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.14/.env b/linux/ecosystem/atlassian/jira/8/8.5.14/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.14/.env rename to linux/ecosystem/atlassian/jira/8/8.5.14/.env diff --git a/linux/atlassian/jira/8/8.5.14/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.14/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.14/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.14/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.14/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.9.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.14/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.9.0/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.14/Makefile diff --git a/linux/atlassian/jira/8/8.5.14/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.14/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.14/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.14/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.14/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.14/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.14/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.14/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.15/.env b/linux/ecosystem/atlassian/jira/8/8.5.15/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.15/.env rename to linux/ecosystem/atlassian/jira/8/8.5.15/.env diff --git a/linux/atlassian/jira/8/8.5.15/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.15/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.15/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.15/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.15/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/8/8.9.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.15/Makefile similarity index 100% rename from linux/atlassian/jira/8/8.9.1/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.15/Makefile diff --git a/linux/atlassian/jira/8/8.5.15/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.15/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.15/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.15/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.15/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.15/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.15/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.15/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.16/.env b/linux/ecosystem/atlassian/jira/8/8.5.16/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.16/.env rename to linux/ecosystem/atlassian/jira/8/8.5.16/.env diff --git a/linux/atlassian/jira/8/8.5.16/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.16/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.16/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.16/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.16/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/latest/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.16/Makefile similarity index 100% rename from linux/atlassian/jira/latest/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.16/Makefile diff --git a/linux/atlassian/jira/8/8.5.16/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.16/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.16/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.16/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.16/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.16/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.16/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.16/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.2/.env b/linux/ecosystem/atlassian/jira/8/8.5.2/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.2/.env rename to linux/ecosystem/atlassian/jira/8/8.5.2/.env diff --git a/linux/atlassian/jira/8/8.5.2/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.2/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.2/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.2/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/templates/5/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.2/Makefile similarity index 100% rename from linux/atlassian/jira/templates/5/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.2/Makefile diff --git a/linux/atlassian/jira/8/8.5.2/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.2/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.2/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.2/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.2/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.2/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.2/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.3/.env b/linux/ecosystem/atlassian/jira/8/8.5.3/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.3/.env rename to linux/ecosystem/atlassian/jira/8/8.5.3/.env diff --git a/linux/atlassian/jira/8/8.5.3/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.3/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.3/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.3/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/templates/6/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.3/Makefile similarity index 100% rename from linux/atlassian/jira/templates/6/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.3/Makefile diff --git a/linux/atlassian/jira/8/8.5.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.3/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.3/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.3/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.3/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.3/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.3/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.4/.env b/linux/ecosystem/atlassian/jira/8/8.5.4/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.4/.env rename to linux/ecosystem/atlassian/jira/8/8.5.4/.env diff --git a/linux/atlassian/jira/8/8.5.4/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.4/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.4/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.4/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.4/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/templates/7/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.4/Makefile similarity index 100% rename from linux/atlassian/jira/templates/7/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.4/Makefile diff --git a/linux/atlassian/jira/8/8.5.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.4/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.4/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.4/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.4/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.4/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.4/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.5/.env b/linux/ecosystem/atlassian/jira/8/8.5.5/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.5/.env rename to linux/ecosystem/atlassian/jira/8/8.5.5/.env diff --git a/linux/atlassian/jira/8/8.5.5/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.5/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.5/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.5/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.5/Dockerfile.jdk11 diff --git a/linux/atlassian/jira/templates/8/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.5/Makefile similarity index 100% rename from linux/atlassian/jira/templates/8/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.5/Makefile diff --git a/linux/atlassian/jira/8/8.5.5/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.5/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.5/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.6/.env b/linux/ecosystem/atlassian/jira/8/8.5.6/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.6/.env rename to linux/ecosystem/atlassian/jira/8/8.5.6/.env diff --git a/linux/atlassian/jira/8/8.5.6/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.6/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.6/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.6/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.6/Dockerfile.jdk11 diff --git a/linux/electron-release-server/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.6/Makefile similarity index 100% rename from linux/electron-release-server/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.6/Makefile diff --git a/linux/atlassian/jira/8/8.5.6/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.6/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.6/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.6/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.7/.env b/linux/ecosystem/atlassian/jira/8/8.5.7/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.7/.env rename to linux/ecosystem/atlassian/jira/8/8.5.7/.env diff --git a/linux/atlassian/jira/8/8.5.7/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.7/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.7/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.7/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.7/Dockerfile.jdk11 diff --git a/linux/epicmorg/devel/jdk11/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.7/Makefile similarity index 100% rename from linux/epicmorg/devel/jdk11/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.7/Makefile diff --git a/linux/atlassian/jira/8/8.5.7/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.7/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.7/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.7/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.8/.env b/linux/ecosystem/atlassian/jira/8/8.5.8/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.8/.env rename to linux/ecosystem/atlassian/jira/8/8.5.8/.env diff --git a/linux/atlassian/jira/8/8.5.8/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.8/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.8/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.8/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.8/Dockerfile.jdk11 diff --git a/linux/epicmorg/devel/jdk16/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.8/Makefile similarity index 100% rename from linux/epicmorg/devel/jdk16/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.8/Makefile diff --git a/linux/atlassian/jira/8/8.5.8/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.8/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.8/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.8/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.5.9/.env b/linux/ecosystem/atlassian/jira/8/8.5.9/.env similarity index 100% rename from linux/atlassian/jira/8/8.5.9/.env rename to linux/ecosystem/atlassian/jira/8/8.5.9/.env diff --git a/linux/atlassian/jira/8/8.5.9/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.5.9/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile diff --git a/linux/atlassian/jira/8/8.5.9/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.5.9/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.5.9/Dockerfile.jdk11 diff --git a/linux/epicmorg/devel/jdk6/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.9/Makefile similarity index 100% rename from linux/epicmorg/devel/jdk6/Makefile rename to linux/ecosystem/atlassian/jira/8/8.5.9/Makefile diff --git a/linux/atlassian/jira/8/8.5.9/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.5.9/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.5.9/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.5.9/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.5.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.9/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.5.9/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.5.9/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.6.0/.env b/linux/ecosystem/atlassian/jira/8/8.6.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.6.0/.env rename to linux/ecosystem/atlassian/jira/8/8.6.0/.env diff --git a/linux/atlassian/jira/8/8.6.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.6.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.6.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.6.0/Dockerfile.jdk11 diff --git a/linux/epicmorg/devel/jdk7/Makefile b/linux/ecosystem/atlassian/jira/8/8.6.0/Makefile similarity index 100% rename from linux/epicmorg/devel/jdk7/Makefile rename to linux/ecosystem/atlassian/jira/8/8.6.0/Makefile diff --git a/linux/atlassian/jira/8/8.6.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.6.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.6.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.6.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.6.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.6.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.6.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.6.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.6.1/.env b/linux/ecosystem/atlassian/jira/8/8.6.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.6.1/.env rename to linux/ecosystem/atlassian/jira/8/8.6.1/.env diff --git a/linux/atlassian/jira/8/8.6.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.6.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.6.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.6.1/Dockerfile.jdk11 diff --git a/linux/epicmorg/devel/jdk8/Makefile b/linux/ecosystem/atlassian/jira/8/8.6.1/Makefile similarity index 100% rename from linux/epicmorg/devel/jdk8/Makefile rename to linux/ecosystem/atlassian/jira/8/8.6.1/Makefile diff --git a/linux/atlassian/jira/8/8.6.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.6.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.6.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.6.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.6.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.6.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.6.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.6.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.7.0/.env b/linux/ecosystem/atlassian/jira/8/8.7.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.7.0/.env rename to linux/ecosystem/atlassian/jira/8/8.7.0/.env diff --git a/linux/atlassian/jira/8/8.7.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.7.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.7.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.7.0/Dockerfile.jdk11 diff --git a/linux/epicmorg/devel/main/Makefile b/linux/ecosystem/atlassian/jira/8/8.7.0/Makefile similarity index 100% rename from linux/epicmorg/devel/main/Makefile rename to linux/ecosystem/atlassian/jira/8/8.7.0/Makefile diff --git a/linux/atlassian/jira/8/8.7.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.7.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.7.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.7.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.7.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.7.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.7.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.7.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.7.1/.env b/linux/ecosystem/atlassian/jira/8/8.7.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.7.1/.env rename to linux/ecosystem/atlassian/jira/8/8.7.1/.env diff --git a/linux/atlassian/jira/8/8.7.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.7.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.7.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.7.1/Dockerfile.jdk11 diff --git a/linux/epicmorg/edge/jdk11/Makefile b/linux/ecosystem/atlassian/jira/8/8.7.1/Makefile similarity index 100% rename from linux/epicmorg/edge/jdk11/Makefile rename to linux/ecosystem/atlassian/jira/8/8.7.1/Makefile diff --git a/linux/atlassian/jira/8/8.7.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.7.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.7.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.7.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.7.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.7.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.7.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.7.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.8.0/.env b/linux/ecosystem/atlassian/jira/8/8.8.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.8.0/.env rename to linux/ecosystem/atlassian/jira/8/8.8.0/.env diff --git a/linux/atlassian/jira/8/8.8.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.8.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.8.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.8.0/Dockerfile.jdk11 diff --git a/linux/epicmorg/edge/jdk16/Makefile b/linux/ecosystem/atlassian/jira/8/8.8.0/Makefile similarity index 100% rename from linux/epicmorg/edge/jdk16/Makefile rename to linux/ecosystem/atlassian/jira/8/8.8.0/Makefile diff --git a/linux/atlassian/jira/8/8.8.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.8.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.8.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.8.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.8.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.8.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.8.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.8.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.8.1/.env b/linux/ecosystem/atlassian/jira/8/8.8.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.8.1/.env rename to linux/ecosystem/atlassian/jira/8/8.8.1/.env diff --git a/linux/atlassian/jira/8/8.8.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.8.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.8.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.8.1/Dockerfile.jdk11 diff --git a/linux/epicmorg/edge/jdk6/Makefile b/linux/ecosystem/atlassian/jira/8/8.8.1/Makefile similarity index 100% rename from linux/epicmorg/edge/jdk6/Makefile rename to linux/ecosystem/atlassian/jira/8/8.8.1/Makefile diff --git a/linux/atlassian/jira/8/8.8.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.8.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.8.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.8.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.8.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.8.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.8.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.8.1/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.9.0/.env b/linux/ecosystem/atlassian/jira/8/8.9.0/.env similarity index 100% rename from linux/atlassian/jira/8/8.9.0/.env rename to linux/ecosystem/atlassian/jira/8/8.9.0/.env diff --git a/linux/atlassian/jira/8/8.9.0/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.9.0/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile diff --git a/linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.9.0/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.9.0/Dockerfile.jdk11 diff --git a/linux/epicmorg/edge/jdk7/Makefile b/linux/ecosystem/atlassian/jira/8/8.9.0/Makefile similarity index 100% rename from linux/epicmorg/edge/jdk7/Makefile rename to linux/ecosystem/atlassian/jira/8/8.9.0/Makefile diff --git a/linux/atlassian/jira/8/8.9.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.9.0/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.9.0/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.9.0/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.9.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.9.0/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.9.0/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.9.0/entrypoint.sh diff --git a/linux/atlassian/jira/8/8.9.1/.env b/linux/ecosystem/atlassian/jira/8/8.9.1/.env similarity index 100% rename from linux/atlassian/jira/8/8.9.1/.env rename to linux/ecosystem/atlassian/jira/8/8.9.1/.env diff --git a/linux/atlassian/jira/8/8.9.1/Dockerfile b/linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile similarity index 100% rename from linux/atlassian/jira/8/8.9.1/Dockerfile rename to linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile diff --git a/linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/8/8.9.1/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/8/8.9.1/Dockerfile.jdk11 diff --git a/linux/epicmorg/edge/jdk8/Makefile b/linux/ecosystem/atlassian/jira/8/8.9.1/Makefile similarity index 100% rename from linux/epicmorg/edge/jdk8/Makefile rename to linux/ecosystem/atlassian/jira/8/8.9.1/Makefile diff --git a/linux/atlassian/jira/8/8.9.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/8/8.9.1/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/8/8.9.1/docker-compose.yml rename to linux/ecosystem/atlassian/jira/8/8.9.1/docker-compose.yml diff --git a/linux/atlassian/jira/8/8.9.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.9.1/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/8/8.9.1/entrypoint.sh rename to linux/ecosystem/atlassian/jira/8/8.9.1/entrypoint.sh diff --git a/linux/atlassian/jira/README.md b/linux/ecosystem/atlassian/jira/README.md similarity index 100% rename from linux/atlassian/jira/README.md rename to linux/ecosystem/atlassian/jira/README.md diff --git a/linux/atlassian/jira/latest/.env b/linux/ecosystem/atlassian/jira/latest/.env similarity index 100% rename from linux/atlassian/jira/latest/.env rename to linux/ecosystem/atlassian/jira/latest/.env diff --git a/linux/atlassian/jira/latest/Dockerfile b/linux/ecosystem/atlassian/jira/latest/Dockerfile similarity index 100% rename from linux/atlassian/jira/latest/Dockerfile rename to linux/ecosystem/atlassian/jira/latest/Dockerfile diff --git a/linux/atlassian/jira/latest/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/latest/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/latest/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/latest/Dockerfile.jdk11 diff --git a/linux/epicmorg/edge/main/Makefile b/linux/ecosystem/atlassian/jira/latest/Makefile similarity index 100% rename from linux/epicmorg/edge/main/Makefile rename to linux/ecosystem/atlassian/jira/latest/Makefile diff --git a/linux/atlassian/jira/latest/docker-compose.yml b/linux/ecosystem/atlassian/jira/latest/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/latest/docker-compose.yml rename to linux/ecosystem/atlassian/jira/latest/docker-compose.yml diff --git a/linux/atlassian/jira/latest/entrypoint.sh b/linux/ecosystem/atlassian/jira/latest/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/latest/entrypoint.sh rename to linux/ecosystem/atlassian/jira/latest/entrypoint.sh diff --git a/linux/atlassian/jira/templates/5/Dockerfile b/linux/ecosystem/atlassian/jira/templates/5/Dockerfile similarity index 100% rename from linux/atlassian/jira/templates/5/Dockerfile rename to linux/ecosystem/atlassian/jira/templates/5/Dockerfile diff --git a/linux/epicmorg/prod/jdk11/Makefile b/linux/ecosystem/atlassian/jira/templates/5/Makefile similarity index 100% rename from linux/epicmorg/prod/jdk11/Makefile rename to linux/ecosystem/atlassian/jira/templates/5/Makefile diff --git a/linux/atlassian/jira/templates/5/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/5/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/templates/5/docker-compose.yml rename to linux/ecosystem/atlassian/jira/templates/5/docker-compose.yml diff --git a/linux/atlassian/jira/templates/5/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/5/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/templates/5/entrypoint.sh rename to linux/ecosystem/atlassian/jira/templates/5/entrypoint.sh diff --git a/linux/atlassian/jira/templates/6/Dockerfile b/linux/ecosystem/atlassian/jira/templates/6/Dockerfile similarity index 100% rename from linux/atlassian/jira/templates/6/Dockerfile rename to linux/ecosystem/atlassian/jira/templates/6/Dockerfile diff --git a/linux/epicmorg/prod/jdk16/Makefile b/linux/ecosystem/atlassian/jira/templates/6/Makefile similarity index 100% rename from linux/epicmorg/prod/jdk16/Makefile rename to linux/ecosystem/atlassian/jira/templates/6/Makefile diff --git a/linux/atlassian/jira/templates/6/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/6/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/templates/6/docker-compose.yml rename to linux/ecosystem/atlassian/jira/templates/6/docker-compose.yml diff --git a/linux/atlassian/jira/templates/6/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/6/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/templates/6/entrypoint.sh rename to linux/ecosystem/atlassian/jira/templates/6/entrypoint.sh diff --git a/linux/atlassian/jira/templates/7/Dockerfile b/linux/ecosystem/atlassian/jira/templates/7/Dockerfile similarity index 100% rename from linux/atlassian/jira/templates/7/Dockerfile rename to linux/ecosystem/atlassian/jira/templates/7/Dockerfile diff --git a/linux/epicmorg/prod/jdk6/Makefile b/linux/ecosystem/atlassian/jira/templates/7/Makefile similarity index 100% rename from linux/epicmorg/prod/jdk6/Makefile rename to linux/ecosystem/atlassian/jira/templates/7/Makefile diff --git a/linux/atlassian/jira/templates/7/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/7/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/templates/7/docker-compose.yml rename to linux/ecosystem/atlassian/jira/templates/7/docker-compose.yml diff --git a/linux/atlassian/jira/templates/7/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/7/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/templates/7/entrypoint.sh rename to linux/ecosystem/atlassian/jira/templates/7/entrypoint.sh diff --git a/linux/atlassian/jira/templates/8/Dockerfile b/linux/ecosystem/atlassian/jira/templates/8/Dockerfile similarity index 100% rename from linux/atlassian/jira/templates/8/Dockerfile rename to linux/ecosystem/atlassian/jira/templates/8/Dockerfile diff --git a/linux/atlassian/jira/templates/8/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/templates/8/Dockerfile.jdk11 similarity index 100% rename from linux/atlassian/jira/templates/8/Dockerfile.jdk11 rename to linux/ecosystem/atlassian/jira/templates/8/Dockerfile.jdk11 diff --git a/linux/epicmorg/prod/jdk7/Makefile b/linux/ecosystem/atlassian/jira/templates/8/Makefile similarity index 100% rename from linux/epicmorg/prod/jdk7/Makefile rename to linux/ecosystem/atlassian/jira/templates/8/Makefile diff --git a/linux/atlassian/jira/templates/8/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/8/docker-compose.yml similarity index 100% rename from linux/atlassian/jira/templates/8/docker-compose.yml rename to linux/ecosystem/atlassian/jira/templates/8/docker-compose.yml diff --git a/linux/atlassian/jira/templates/8/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/8/entrypoint.sh similarity index 100% rename from linux/atlassian/jira/templates/8/entrypoint.sh rename to linux/ecosystem/atlassian/jira/templates/8/entrypoint.sh diff --git a/linux/electron-release-server/Dockerfile b/linux/ecosystem/electron-release-server/Dockerfile similarity index 100% rename from linux/electron-release-server/Dockerfile rename to linux/ecosystem/electron-release-server/Dockerfile diff --git a/linux/epicmorg/prod/jdk8/Makefile b/linux/ecosystem/electron-release-server/Makefile similarity index 100% rename from linux/epicmorg/prod/jdk8/Makefile rename to linux/ecosystem/electron-release-server/Makefile diff --git a/linux/electron-release-server/docker-compose.yml b/linux/ecosystem/electron-release-server/docker-compose.yml similarity index 100% rename from linux/electron-release-server/docker-compose.yml rename to linux/ecosystem/electron-release-server/docker-compose.yml diff --git a/linux/electron-release-server/docker-compose.yml.example b/linux/ecosystem/electron-release-server/docker-compose.yml.example similarity index 100% rename from linux/electron-release-server/docker-compose.yml.example rename to linux/ecosystem/electron-release-server/docker-compose.yml.example 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/epicmorg/prod/main/Makefile b/linux/ecosystem/epicmorg/devel/jdk11/Makefile similarity index 100% rename from linux/epicmorg/prod/main/Makefile rename to linux/ecosystem/epicmorg/devel/jdk11/Makefile diff --git a/linux/epicmorg/devel/jdk11/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk11/docker-compose.yml similarity index 100% rename from linux/epicmorg/devel/jdk11/docker-compose.yml rename to linux/ecosystem/epicmorg/devel/jdk11/docker-compose.yml diff --git a/linux/epicmorg/devel/jdk16/Dockerfile b/linux/ecosystem/epicmorg/devel/jdk16/Dockerfile similarity index 100% rename from linux/epicmorg/devel/jdk16/Dockerfile rename to linux/ecosystem/epicmorg/devel/jdk16/Dockerfile diff --git a/linux/mattermost/latest/Makefile b/linux/ecosystem/epicmorg/devel/jdk16/Makefile similarity index 100% rename from linux/mattermost/latest/Makefile rename to linux/ecosystem/epicmorg/devel/jdk16/Makefile diff --git a/linux/epicmorg/devel/jdk16/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk16/docker-compose.yml similarity index 100% rename from linux/epicmorg/devel/jdk16/docker-compose.yml rename to linux/ecosystem/epicmorg/devel/jdk16/docker-compose.yml 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/nextcloud/14/Makefile b/linux/ecosystem/epicmorg/devel/jdk6/Makefile similarity index 100% rename from linux/nextcloud/14/Makefile rename to linux/ecosystem/epicmorg/devel/jdk6/Makefile diff --git a/linux/epicmorg/devel/jdk6/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk6/docker-compose.yml similarity index 100% rename from linux/epicmorg/devel/jdk6/docker-compose.yml rename to linux/ecosystem/epicmorg/devel/jdk6/docker-compose.yml 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/nextcloud/15/Makefile b/linux/ecosystem/epicmorg/devel/jdk7/Makefile similarity index 100% rename from linux/nextcloud/15/Makefile rename to linux/ecosystem/epicmorg/devel/jdk7/Makefile diff --git a/linux/epicmorg/devel/jdk7/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk7/docker-compose.yml similarity index 100% rename from linux/epicmorg/devel/jdk7/docker-compose.yml rename to linux/ecosystem/epicmorg/devel/jdk7/docker-compose.yml 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/nextcloud/16/Makefile b/linux/ecosystem/epicmorg/devel/jdk8/Makefile similarity index 100% rename from linux/nextcloud/16/Makefile rename to linux/ecosystem/epicmorg/devel/jdk8/Makefile diff --git a/linux/epicmorg/devel/jdk8/docker-compose.yml b/linux/ecosystem/epicmorg/devel/jdk8/docker-compose.yml similarity index 100% rename from linux/epicmorg/devel/jdk8/docker-compose.yml rename to linux/ecosystem/epicmorg/devel/jdk8/docker-compose.yml diff --git a/linux/epicmorg/devel/main/Dockerfile b/linux/ecosystem/epicmorg/devel/main/Dockerfile similarity index 100% rename from linux/epicmorg/devel/main/Dockerfile rename to linux/ecosystem/epicmorg/devel/main/Dockerfile diff --git a/linux/nextcloud/17/Makefile b/linux/ecosystem/epicmorg/devel/main/Makefile similarity index 100% rename from linux/nextcloud/17/Makefile rename to linux/ecosystem/epicmorg/devel/main/Makefile diff --git a/linux/epicmorg/devel/main/docker-compose.yml b/linux/ecosystem/epicmorg/devel/main/docker-compose.yml similarity index 100% rename from linux/epicmorg/devel/main/docker-compose.yml rename to linux/ecosystem/epicmorg/devel/main/docker-compose.yml 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/nextcloud/18/Makefile b/linux/ecosystem/epicmorg/edge/jdk11/Makefile similarity index 100% rename from linux/nextcloud/18/Makefile rename to linux/ecosystem/epicmorg/edge/jdk11/Makefile diff --git a/linux/epicmorg/edge/jdk11/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk11/docker-compose.yml similarity index 100% rename from linux/epicmorg/edge/jdk11/docker-compose.yml rename to linux/ecosystem/epicmorg/edge/jdk11/docker-compose.yml diff --git a/linux/epicmorg/edge/jdk16/Dockerfile b/linux/ecosystem/epicmorg/edge/jdk16/Dockerfile similarity index 100% rename from linux/epicmorg/edge/jdk16/Dockerfile rename to linux/ecosystem/epicmorg/edge/jdk16/Dockerfile diff --git a/linux/nextcloud/19/Makefile b/linux/ecosystem/epicmorg/edge/jdk16/Makefile similarity index 100% rename from linux/nextcloud/19/Makefile rename to linux/ecosystem/epicmorg/edge/jdk16/Makefile diff --git a/linux/epicmorg/edge/jdk16/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk16/docker-compose.yml similarity index 100% rename from linux/epicmorg/edge/jdk16/docker-compose.yml rename to linux/ecosystem/epicmorg/edge/jdk16/docker-compose.yml 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/nextcloud/20/Makefile b/linux/ecosystem/epicmorg/edge/jdk6/Makefile similarity index 100% rename from linux/nextcloud/20/Makefile rename to linux/ecosystem/epicmorg/edge/jdk6/Makefile diff --git a/linux/epicmorg/edge/jdk6/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk6/docker-compose.yml similarity index 100% rename from linux/epicmorg/edge/jdk6/docker-compose.yml rename to linux/ecosystem/epicmorg/edge/jdk6/docker-compose.yml 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/nextcloud/21/Makefile b/linux/ecosystem/epicmorg/edge/jdk7/Makefile similarity index 100% rename from linux/nextcloud/21/Makefile rename to linux/ecosystem/epicmorg/edge/jdk7/Makefile diff --git a/linux/epicmorg/edge/jdk7/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk7/docker-compose.yml similarity index 100% rename from linux/epicmorg/edge/jdk7/docker-compose.yml rename to linux/ecosystem/epicmorg/edge/jdk7/docker-compose.yml 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/nextcloud/22/Makefile b/linux/ecosystem/epicmorg/edge/jdk8/Makefile similarity index 100% rename from linux/nextcloud/22/Makefile rename to linux/ecosystem/epicmorg/edge/jdk8/Makefile diff --git a/linux/epicmorg/edge/jdk8/docker-compose.yml b/linux/ecosystem/epicmorg/edge/jdk8/docker-compose.yml similarity index 100% rename from linux/epicmorg/edge/jdk8/docker-compose.yml rename to linux/ecosystem/epicmorg/edge/jdk8/docker-compose.yml diff --git a/linux/epicmorg/edge/main/Dockerfile b/linux/ecosystem/epicmorg/edge/main/Dockerfile similarity index 100% rename from linux/epicmorg/edge/main/Dockerfile rename to linux/ecosystem/epicmorg/edge/main/Dockerfile diff --git a/linux/nextcloud/latest/Makefile b/linux/ecosystem/epicmorg/edge/main/Makefile similarity index 100% rename from linux/nextcloud/latest/Makefile rename to linux/ecosystem/epicmorg/edge/main/Makefile diff --git a/linux/epicmorg/edge/main/docker-compose.yml b/linux/ecosystem/epicmorg/edge/main/docker-compose.yml similarity index 100% rename from linux/epicmorg/edge/main/docker-compose.yml rename to linux/ecosystem/epicmorg/edge/main/docker-compose.yml 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/nginx/1.14.2/main/Makefile b/linux/ecosystem/epicmorg/prod/jdk11/Makefile similarity index 100% rename from linux/nginx/1.14.2/main/Makefile rename to linux/ecosystem/epicmorg/prod/jdk11/Makefile diff --git a/linux/epicmorg/prod/jdk11/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk11/docker-compose.yml similarity index 100% rename from linux/epicmorg/prod/jdk11/docker-compose.yml rename to linux/ecosystem/epicmorg/prod/jdk11/docker-compose.yml diff --git a/linux/epicmorg/prod/jdk16/Dockerfile b/linux/ecosystem/epicmorg/prod/jdk16/Dockerfile similarity index 100% rename from linux/epicmorg/prod/jdk16/Dockerfile rename to linux/ecosystem/epicmorg/prod/jdk16/Dockerfile diff --git a/linux/nginx/1.14.2/php/Makefile b/linux/ecosystem/epicmorg/prod/jdk16/Makefile similarity index 100% rename from linux/nginx/1.14.2/php/Makefile rename to linux/ecosystem/epicmorg/prod/jdk16/Makefile diff --git a/linux/epicmorg/prod/jdk16/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk16/docker-compose.yml similarity index 100% rename from linux/epicmorg/prod/jdk16/docker-compose.yml rename to linux/ecosystem/epicmorg/prod/jdk16/docker-compose.yml 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/nginx/1.14.2/rtmp-hls/Makefile b/linux/ecosystem/epicmorg/prod/jdk6/Makefile similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/Makefile rename to linux/ecosystem/epicmorg/prod/jdk6/Makefile diff --git a/linux/epicmorg/prod/jdk6/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk6/docker-compose.yml similarity index 100% rename from linux/epicmorg/prod/jdk6/docker-compose.yml rename to linux/ecosystem/epicmorg/prod/jdk6/docker-compose.yml 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/nginx/1.15.12/main/Makefile b/linux/ecosystem/epicmorg/prod/jdk7/Makefile similarity index 100% rename from linux/nginx/1.15.12/main/Makefile rename to linux/ecosystem/epicmorg/prod/jdk7/Makefile diff --git a/linux/epicmorg/prod/jdk7/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk7/docker-compose.yml similarity index 100% rename from linux/epicmorg/prod/jdk7/docker-compose.yml rename to linux/ecosystem/epicmorg/prod/jdk7/docker-compose.yml 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/nginx/1.15.12/php/Makefile b/linux/ecosystem/epicmorg/prod/jdk8/Makefile similarity index 100% rename from linux/nginx/1.15.12/php/Makefile rename to linux/ecosystem/epicmorg/prod/jdk8/Makefile diff --git a/linux/epicmorg/prod/jdk8/docker-compose.yml b/linux/ecosystem/epicmorg/prod/jdk8/docker-compose.yml similarity index 100% rename from linux/epicmorg/prod/jdk8/docker-compose.yml rename to linux/ecosystem/epicmorg/prod/jdk8/docker-compose.yml diff --git a/linux/epicmorg/prod/main/Dockerfile b/linux/ecosystem/epicmorg/prod/main/Dockerfile similarity index 100% rename from linux/epicmorg/prod/main/Dockerfile rename to linux/ecosystem/epicmorg/prod/main/Dockerfile diff --git a/linux/nginx/1.15.12/rtmp-hls/Makefile b/linux/ecosystem/epicmorg/prod/main/Makefile similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/Makefile rename to linux/ecosystem/epicmorg/prod/main/Makefile 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/epicmorg/prod/main/docker-compose.yml b/linux/ecosystem/epicmorg/prod/main/docker-compose.yml similarity index 100% rename from linux/epicmorg/prod/main/docker-compose.yml rename to linux/ecosystem/epicmorg/prod/main/docker-compose.yml 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/nginx/1.14.2/main/.env b/linux/ecosystem/nginx/1.14.2/main/.env similarity index 100% rename from linux/nginx/1.14.2/main/.env rename to linux/ecosystem/nginx/1.14.2/main/.env diff --git a/linux/nginx/1.14.2/main/Dockerfile b/linux/ecosystem/nginx/1.14.2/main/Dockerfile similarity index 100% rename from linux/nginx/1.14.2/main/Dockerfile rename to linux/ecosystem/nginx/1.14.2/main/Dockerfile diff --git a/linux/nginx/1.16.1/main/Makefile b/linux/ecosystem/nginx/1.14.2/main/Makefile similarity index 100% rename from linux/nginx/1.16.1/main/Makefile rename to linux/ecosystem/nginx/1.14.2/main/Makefile diff --git a/linux/nginx/1.14.2/main/README.md b/linux/ecosystem/nginx/1.14.2/main/README.md similarity index 100% rename from linux/nginx/1.14.2/main/README.md rename to linux/ecosystem/nginx/1.14.2/main/README.md diff --git a/linux/nginx/1.14.2/main/docker-compose.yml b/linux/ecosystem/nginx/1.14.2/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.14.2/main/docker-compose.yml rename to linux/ecosystem/nginx/1.14.2/main/docker-compose.yml diff --git a/linux/nginx/1.14.2/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.14.2/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.14.2/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.14.2/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.14.2/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.14.2/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.14.2/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.14.2/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.14.2/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.14.2/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.14.2/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.14.2/main/pre/nginx-description-pak diff --git a/linux/nginx/1.14.2/main/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/1.14.2/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.14.2/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.14.2/php/.env b/linux/ecosystem/nginx/1.14.2/php/.env similarity index 100% rename from linux/nginx/1.14.2/php/.env rename to linux/ecosystem/nginx/1.14.2/php/.env diff --git a/linux/nginx/1.14.2/php/Dockerfile b/linux/ecosystem/nginx/1.14.2/php/Dockerfile similarity index 100% rename from linux/nginx/1.14.2/php/Dockerfile rename to linux/ecosystem/nginx/1.14.2/php/Dockerfile diff --git a/linux/nginx/1.16.1/php/Makefile b/linux/ecosystem/nginx/1.14.2/php/Makefile similarity index 100% rename from linux/nginx/1.16.1/php/Makefile rename to linux/ecosystem/nginx/1.14.2/php/Makefile diff --git a/linux/nginx/1.14.2/php/README.md b/linux/ecosystem/nginx/1.14.2/php/README.md similarity index 100% rename from linux/nginx/1.14.2/php/README.md rename to linux/ecosystem/nginx/1.14.2/php/README.md diff --git a/linux/nginx/1.14.2/php/docker-compose.yml b/linux/ecosystem/nginx/1.14.2/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.14.2/php/docker-compose.yml rename to linux/ecosystem/nginx/1.14.2/php/docker-compose.yml diff --git a/linux/nginx/1.14.2/rtmp-hls/.env b/linux/ecosystem/nginx/1.14.2/rtmp-hls/.env similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/.env rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/.env diff --git a/linux/nginx/1.14.2/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.14.2/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/Dockerfile diff --git a/linux/nginx/1.16.1/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.14.2/rtmp-hls/Makefile similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/Makefile rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/Makefile diff --git a/linux/nginx/1.14.2/rtmp-hls/README.md b/linux/ecosystem/nginx/1.14.2/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/README.md diff --git a/linux/nginx/1.14.2/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.14.2/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/conf/nginx.conf diff --git a/linux/nginx/1.14.2/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/1.14.2/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/1.14.2/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/1.14.2/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/nginx/1.14.2/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.14.2/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.14.2/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.14.2/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.14.2/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.14.2/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.14.2/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/1.14.2/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/1.14.2/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.14.2/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.14.2/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/1.14.2/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/players/rtmp_hls.html diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.14.2/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/1.14.2/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.15.12/main/.env b/linux/ecosystem/nginx/1.15.12/main/.env similarity index 100% rename from linux/nginx/1.15.12/main/.env rename to linux/ecosystem/nginx/1.15.12/main/.env diff --git a/linux/nginx/1.15.12/main/Dockerfile b/linux/ecosystem/nginx/1.15.12/main/Dockerfile similarity index 100% rename from linux/nginx/1.15.12/main/Dockerfile rename to linux/ecosystem/nginx/1.15.12/main/Dockerfile diff --git a/linux/nginx/1.17.10/main/Makefile b/linux/ecosystem/nginx/1.15.12/main/Makefile similarity index 100% rename from linux/nginx/1.17.10/main/Makefile rename to linux/ecosystem/nginx/1.15.12/main/Makefile diff --git a/linux/nginx/1.15.12/main/README.md b/linux/ecosystem/nginx/1.15.12/main/README.md similarity index 100% rename from linux/nginx/1.15.12/main/README.md rename to linux/ecosystem/nginx/1.15.12/main/README.md diff --git a/linux/nginx/1.15.12/main/docker-compose.yml b/linux/ecosystem/nginx/1.15.12/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.15.12/main/docker-compose.yml rename to linux/ecosystem/nginx/1.15.12/main/docker-compose.yml diff --git a/linux/nginx/1.15.12/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.15.12/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.15.12/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.15.12/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.15.12/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.15.12/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.15.12/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.15.12/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.15.12/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.15.12/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.15.12/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.15.12/main/pre/nginx-description-pak diff --git a/linux/nginx/1.15.12/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.15.12/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/1.15.12/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.15.12/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.15.12/php/.env b/linux/ecosystem/nginx/1.15.12/php/.env similarity index 100% rename from linux/nginx/1.15.12/php/.env rename to linux/ecosystem/nginx/1.15.12/php/.env diff --git a/linux/nginx/1.15.12/php/Dockerfile b/linux/ecosystem/nginx/1.15.12/php/Dockerfile similarity index 100% rename from linux/nginx/1.15.12/php/Dockerfile rename to linux/ecosystem/nginx/1.15.12/php/Dockerfile diff --git a/linux/nginx/1.17.10/php/Makefile b/linux/ecosystem/nginx/1.15.12/php/Makefile similarity index 100% rename from linux/nginx/1.17.10/php/Makefile rename to linux/ecosystem/nginx/1.15.12/php/Makefile diff --git a/linux/nginx/1.15.12/php/README.md b/linux/ecosystem/nginx/1.15.12/php/README.md similarity index 100% rename from linux/nginx/1.15.12/php/README.md rename to linux/ecosystem/nginx/1.15.12/php/README.md diff --git a/linux/nginx/1.15.12/php/docker-compose.yml b/linux/ecosystem/nginx/1.15.12/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.15.12/php/docker-compose.yml rename to linux/ecosystem/nginx/1.15.12/php/docker-compose.yml diff --git a/linux/nginx/1.15.12/rtmp-hls/.env b/linux/ecosystem/nginx/1.15.12/rtmp-hls/.env similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/.env rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/.env diff --git a/linux/nginx/1.15.12/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.15.12/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/Dockerfile diff --git a/linux/nginx/1.17.10/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.15.12/rtmp-hls/Makefile similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/Makefile rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/Makefile diff --git a/linux/nginx/1.15.12/rtmp-hls/README.md b/linux/ecosystem/nginx/1.15.12/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/README.md diff --git a/linux/nginx/1.15.12/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.15.12/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.15.12/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.15.12/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.15.12/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/1.15.12/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.15.12/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/players/rtmp_hls.html diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/1.15.12/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.16.1/main/.env b/linux/ecosystem/nginx/1.16.1/main/.env similarity index 100% rename from linux/nginx/1.16.1/main/.env rename to linux/ecosystem/nginx/1.16.1/main/.env diff --git a/linux/nginx/1.16.1/main/Dockerfile b/linux/ecosystem/nginx/1.16.1/main/Dockerfile similarity index 100% rename from linux/nginx/1.16.1/main/Dockerfile rename to linux/ecosystem/nginx/1.16.1/main/Dockerfile diff --git a/linux/nginx/1.18.0/main/Makefile b/linux/ecosystem/nginx/1.16.1/main/Makefile similarity index 100% rename from linux/nginx/1.18.0/main/Makefile rename to linux/ecosystem/nginx/1.16.1/main/Makefile diff --git a/linux/nginx/1.16.1/main/README.md b/linux/ecosystem/nginx/1.16.1/main/README.md similarity index 100% rename from linux/nginx/1.16.1/main/README.md rename to linux/ecosystem/nginx/1.16.1/main/README.md diff --git a/linux/nginx/1.16.1/main/docker-compose.yml b/linux/ecosystem/nginx/1.16.1/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.16.1/main/docker-compose.yml rename to linux/ecosystem/nginx/1.16.1/main/docker-compose.yml diff --git a/linux/nginx/1.16.1/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.16.1/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.16.1/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.16.1/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.16.1/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.16.1/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.16.1/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.16.1/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.16.1/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.16.1/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.16.1/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.16.1/main/pre/nginx-description-pak diff --git a/linux/nginx/1.16.1/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.16.1/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/1.16.1/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.16.1/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.16.1/php/.env b/linux/ecosystem/nginx/1.16.1/php/.env similarity index 100% rename from linux/nginx/1.16.1/php/.env rename to linux/ecosystem/nginx/1.16.1/php/.env diff --git a/linux/nginx/1.16.1/php/Dockerfile b/linux/ecosystem/nginx/1.16.1/php/Dockerfile similarity index 100% rename from linux/nginx/1.16.1/php/Dockerfile rename to linux/ecosystem/nginx/1.16.1/php/Dockerfile diff --git a/linux/nginx/1.18.0/php/Makefile b/linux/ecosystem/nginx/1.16.1/php/Makefile similarity index 100% rename from linux/nginx/1.18.0/php/Makefile rename to linux/ecosystem/nginx/1.16.1/php/Makefile diff --git a/linux/nginx/1.16.1/php/README.md b/linux/ecosystem/nginx/1.16.1/php/README.md similarity index 100% rename from linux/nginx/1.16.1/php/README.md rename to linux/ecosystem/nginx/1.16.1/php/README.md diff --git a/linux/nginx/1.16.1/php/docker-compose.yml b/linux/ecosystem/nginx/1.16.1/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.16.1/php/docker-compose.yml rename to linux/ecosystem/nginx/1.16.1/php/docker-compose.yml diff --git a/linux/nginx/1.16.1/rtmp-hls/.env b/linux/ecosystem/nginx/1.16.1/rtmp-hls/.env similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/.env rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/.env diff --git a/linux/nginx/1.16.1/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.16.1/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/Dockerfile diff --git a/linux/nginx/1.18.0/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.16.1/rtmp-hls/Makefile similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/Makefile rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/Makefile diff --git a/linux/nginx/1.16.1/rtmp-hls/README.md b/linux/ecosystem/nginx/1.16.1/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/README.md diff --git a/linux/nginx/1.16.1/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.16.1/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.16.1/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.16.1/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.16.1/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/1.16.1/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.16.1/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/players/rtmp_hls.html diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/1.16.1/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.17.10/main/.env b/linux/ecosystem/nginx/1.17.10/main/.env similarity index 100% rename from linux/nginx/1.17.10/main/.env rename to linux/ecosystem/nginx/1.17.10/main/.env diff --git a/linux/nginx/1.17.10/main/Dockerfile b/linux/ecosystem/nginx/1.17.10/main/Dockerfile similarity index 100% rename from linux/nginx/1.17.10/main/Dockerfile rename to linux/ecosystem/nginx/1.17.10/main/Dockerfile diff --git a/linux/nginx/1.19.10/main/Makefile b/linux/ecosystem/nginx/1.17.10/main/Makefile similarity index 100% rename from linux/nginx/1.19.10/main/Makefile rename to linux/ecosystem/nginx/1.17.10/main/Makefile diff --git a/linux/nginx/1.17.10/main/README.md b/linux/ecosystem/nginx/1.17.10/main/README.md similarity index 100% rename from linux/nginx/1.17.10/main/README.md rename to linux/ecosystem/nginx/1.17.10/main/README.md diff --git a/linux/nginx/1.17.10/main/docker-compose.yml b/linux/ecosystem/nginx/1.17.10/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.17.10/main/docker-compose.yml rename to linux/ecosystem/nginx/1.17.10/main/docker-compose.yml diff --git a/linux/nginx/1.17.10/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.17.10/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.17.10/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.17.10/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.17.10/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.17.10/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.17.10/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.17.10/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.17.10/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.17.10/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.17.10/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.17.10/main/pre/nginx-description-pak diff --git a/linux/nginx/1.17.10/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.17.10/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/1.17.10/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.17.10/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.17.10/php/.env b/linux/ecosystem/nginx/1.17.10/php/.env similarity index 100% rename from linux/nginx/1.17.10/php/.env rename to linux/ecosystem/nginx/1.17.10/php/.env diff --git a/linux/nginx/1.17.10/php/Dockerfile b/linux/ecosystem/nginx/1.17.10/php/Dockerfile similarity index 100% rename from linux/nginx/1.17.10/php/Dockerfile rename to linux/ecosystem/nginx/1.17.10/php/Dockerfile diff --git a/linux/nginx/1.19.10/php/Makefile b/linux/ecosystem/nginx/1.17.10/php/Makefile similarity index 100% rename from linux/nginx/1.19.10/php/Makefile rename to linux/ecosystem/nginx/1.17.10/php/Makefile diff --git a/linux/nginx/1.17.10/php/README.md b/linux/ecosystem/nginx/1.17.10/php/README.md similarity index 100% rename from linux/nginx/1.17.10/php/README.md rename to linux/ecosystem/nginx/1.17.10/php/README.md diff --git a/linux/nginx/1.17.10/php/docker-compose.yml b/linux/ecosystem/nginx/1.17.10/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.17.10/php/docker-compose.yml rename to linux/ecosystem/nginx/1.17.10/php/docker-compose.yml diff --git a/linux/nginx/1.17.10/rtmp-hls/.env b/linux/ecosystem/nginx/1.17.10/rtmp-hls/.env similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/.env rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/.env diff --git a/linux/nginx/1.17.10/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.17.10/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/Dockerfile diff --git a/linux/nginx/1.19.10/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.17.10/rtmp-hls/Makefile similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/Makefile rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/Makefile diff --git a/linux/nginx/1.17.10/rtmp-hls/README.md b/linux/ecosystem/nginx/1.17.10/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/README.md diff --git a/linux/nginx/1.17.10/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.17.10/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.17.10/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.17.10/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.17.10/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/1.17.10/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.17.10/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/players/rtmp_hls.html diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/1.17.10/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.18.0/main/.env b/linux/ecosystem/nginx/1.18.0/main/.env similarity index 100% rename from linux/nginx/1.18.0/main/.env rename to linux/ecosystem/nginx/1.18.0/main/.env diff --git a/linux/nginx/1.18.0/main/Dockerfile b/linux/ecosystem/nginx/1.18.0/main/Dockerfile similarity index 100% rename from linux/nginx/1.18.0/main/Dockerfile rename to linux/ecosystem/nginx/1.18.0/main/Dockerfile diff --git a/linux/nginx/1.20.1/main/Makefile b/linux/ecosystem/nginx/1.18.0/main/Makefile similarity index 100% rename from linux/nginx/1.20.1/main/Makefile rename to linux/ecosystem/nginx/1.18.0/main/Makefile diff --git a/linux/nginx/1.18.0/main/README.md b/linux/ecosystem/nginx/1.18.0/main/README.md similarity index 100% rename from linux/nginx/1.18.0/main/README.md rename to linux/ecosystem/nginx/1.18.0/main/README.md diff --git a/linux/nginx/1.18.0/main/docker-compose.yml b/linux/ecosystem/nginx/1.18.0/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.18.0/main/docker-compose.yml rename to linux/ecosystem/nginx/1.18.0/main/docker-compose.yml diff --git a/linux/nginx/1.18.0/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.18.0/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.18.0/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.18.0/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.18.0/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.18.0/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.18.0/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.18.0/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.18.0/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.18.0/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.18.0/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.18.0/main/pre/nginx-description-pak diff --git a/linux/nginx/1.18.0/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.18.0/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/1.18.0/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.18.0/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.18.0/php/.env b/linux/ecosystem/nginx/1.18.0/php/.env similarity index 100% rename from linux/nginx/1.18.0/php/.env rename to linux/ecosystem/nginx/1.18.0/php/.env diff --git a/linux/nginx/1.18.0/php/Dockerfile b/linux/ecosystem/nginx/1.18.0/php/Dockerfile similarity index 100% rename from linux/nginx/1.18.0/php/Dockerfile rename to linux/ecosystem/nginx/1.18.0/php/Dockerfile diff --git a/linux/nginx/1.20.1/php/Makefile b/linux/ecosystem/nginx/1.18.0/php/Makefile similarity index 100% rename from linux/nginx/1.20.1/php/Makefile rename to linux/ecosystem/nginx/1.18.0/php/Makefile diff --git a/linux/nginx/1.18.0/php/README.md b/linux/ecosystem/nginx/1.18.0/php/README.md similarity index 100% rename from linux/nginx/1.18.0/php/README.md rename to linux/ecosystem/nginx/1.18.0/php/README.md diff --git a/linux/nginx/1.18.0/php/docker-compose.yml b/linux/ecosystem/nginx/1.18.0/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.18.0/php/docker-compose.yml rename to linux/ecosystem/nginx/1.18.0/php/docker-compose.yml diff --git a/linux/nginx/1.18.0/rtmp-hls/.env b/linux/ecosystem/nginx/1.18.0/rtmp-hls/.env similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/.env rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/.env diff --git a/linux/nginx/1.18.0/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.18.0/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/Dockerfile diff --git a/linux/nginx/1.20.1/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.18.0/rtmp-hls/Makefile similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/Makefile rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/Makefile diff --git a/linux/nginx/1.18.0/rtmp-hls/README.md b/linux/ecosystem/nginx/1.18.0/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/README.md diff --git a/linux/nginx/1.18.0/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.18.0/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.18.0/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.18.0/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.18.0/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/1.18.0/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.18.0/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/players/rtmp_hls.html diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/1.18.0/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.19.10/main/.env b/linux/ecosystem/nginx/1.19.10/main/.env similarity index 100% rename from linux/nginx/1.19.10/main/.env rename to linux/ecosystem/nginx/1.19.10/main/.env diff --git a/linux/nginx/1.19.10/main/Dockerfile b/linux/ecosystem/nginx/1.19.10/main/Dockerfile similarity index 100% rename from linux/nginx/1.19.10/main/Dockerfile rename to linux/ecosystem/nginx/1.19.10/main/Dockerfile diff --git a/linux/nginx/1.21.1/main/Makefile b/linux/ecosystem/nginx/1.19.10/main/Makefile similarity index 100% rename from linux/nginx/1.21.1/main/Makefile rename to linux/ecosystem/nginx/1.19.10/main/Makefile diff --git a/linux/nginx/1.19.10/main/README.md b/linux/ecosystem/nginx/1.19.10/main/README.md similarity index 100% rename from linux/nginx/1.19.10/main/README.md rename to linux/ecosystem/nginx/1.19.10/main/README.md diff --git a/linux/nginx/1.19.10/main/docker-compose.yml b/linux/ecosystem/nginx/1.19.10/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.19.10/main/docker-compose.yml rename to linux/ecosystem/nginx/1.19.10/main/docker-compose.yml diff --git a/linux/nginx/1.19.10/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.19.10/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.19.10/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.19.10/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.19.10/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.19.10/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.19.10/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.19.10/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.19.10/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.19.10/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.19.10/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.19.10/main/pre/nginx-description-pak diff --git a/linux/nginx/1.19.10/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.19.10/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/1.19.10/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.19.10/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.19.10/php/.env b/linux/ecosystem/nginx/1.19.10/php/.env similarity index 100% rename from linux/nginx/1.19.10/php/.env rename to linux/ecosystem/nginx/1.19.10/php/.env diff --git a/linux/nginx/1.19.10/php/Dockerfile b/linux/ecosystem/nginx/1.19.10/php/Dockerfile similarity index 100% rename from linux/nginx/1.19.10/php/Dockerfile rename to linux/ecosystem/nginx/1.19.10/php/Dockerfile diff --git a/linux/nginx/1.21.1/php/Makefile b/linux/ecosystem/nginx/1.19.10/php/Makefile similarity index 100% rename from linux/nginx/1.21.1/php/Makefile rename to linux/ecosystem/nginx/1.19.10/php/Makefile diff --git a/linux/nginx/1.19.10/php/README.md b/linux/ecosystem/nginx/1.19.10/php/README.md similarity index 100% rename from linux/nginx/1.19.10/php/README.md rename to linux/ecosystem/nginx/1.19.10/php/README.md diff --git a/linux/nginx/1.19.10/php/docker-compose.yml b/linux/ecosystem/nginx/1.19.10/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.19.10/php/docker-compose.yml rename to linux/ecosystem/nginx/1.19.10/php/docker-compose.yml diff --git a/linux/nginx/1.19.10/rtmp-hls/.env b/linux/ecosystem/nginx/1.19.10/rtmp-hls/.env similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/.env rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/.env diff --git a/linux/nginx/1.19.10/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.19.10/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/Dockerfile diff --git a/linux/nginx/1.21.1/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.19.10/rtmp-hls/Makefile similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/Makefile rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/Makefile diff --git a/linux/nginx/1.19.10/rtmp-hls/README.md b/linux/ecosystem/nginx/1.19.10/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/README.md diff --git a/linux/nginx/1.19.10/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.19.10/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.19.10/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.19.10/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.19.10/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/1.19.10/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.19.10/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/players/rtmp_hls.html diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/1.19.10/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.20.1/main/.env b/linux/ecosystem/nginx/1.20.1/main/.env similarity index 100% rename from linux/nginx/1.20.1/main/.env rename to linux/ecosystem/nginx/1.20.1/main/.env diff --git a/linux/nginx/1.20.1/main/Dockerfile b/linux/ecosystem/nginx/1.20.1/main/Dockerfile similarity index 100% rename from linux/nginx/1.20.1/main/Dockerfile rename to linux/ecosystem/nginx/1.20.1/main/Dockerfile diff --git a/linux/nginx/latest/main/Makefile b/linux/ecosystem/nginx/1.20.1/main/Makefile similarity index 100% rename from linux/nginx/latest/main/Makefile rename to linux/ecosystem/nginx/1.20.1/main/Makefile diff --git a/linux/nginx/1.20.1/main/README.md b/linux/ecosystem/nginx/1.20.1/main/README.md similarity index 100% rename from linux/nginx/1.20.1/main/README.md rename to linux/ecosystem/nginx/1.20.1/main/README.md diff --git a/linux/nginx/1.20.1/main/docker-compose.yml b/linux/ecosystem/nginx/1.20.1/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.20.1/main/docker-compose.yml rename to linux/ecosystem/nginx/1.20.1/main/docker-compose.yml diff --git a/linux/nginx/1.20.1/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.20.1/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.20.1/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.20.1/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.20.1/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.20.1/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.20.1/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.20.1/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.20.1/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.20.1/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.20.1/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.20.1/main/pre/nginx-description-pak diff --git a/linux/nginx/1.20.1/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.20.1/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/1.20.1/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.20.1/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.20.1/php/.env b/linux/ecosystem/nginx/1.20.1/php/.env similarity index 100% rename from linux/nginx/1.20.1/php/.env rename to linux/ecosystem/nginx/1.20.1/php/.env diff --git a/linux/nginx/1.20.1/php/Dockerfile b/linux/ecosystem/nginx/1.20.1/php/Dockerfile similarity index 100% rename from linux/nginx/1.20.1/php/Dockerfile rename to linux/ecosystem/nginx/1.20.1/php/Dockerfile diff --git a/linux/nginx/latest/php/Makefile b/linux/ecosystem/nginx/1.20.1/php/Makefile similarity index 100% rename from linux/nginx/latest/php/Makefile rename to linux/ecosystem/nginx/1.20.1/php/Makefile diff --git a/linux/nginx/1.20.1/php/README.md b/linux/ecosystem/nginx/1.20.1/php/README.md similarity index 100% rename from linux/nginx/1.20.1/php/README.md rename to linux/ecosystem/nginx/1.20.1/php/README.md diff --git a/linux/nginx/1.20.1/php/docker-compose.yml b/linux/ecosystem/nginx/1.20.1/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.20.1/php/docker-compose.yml rename to linux/ecosystem/nginx/1.20.1/php/docker-compose.yml diff --git a/linux/nginx/1.20.1/rtmp-hls/.env b/linux/ecosystem/nginx/1.20.1/rtmp-hls/.env similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/.env rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/.env diff --git a/linux/nginx/1.20.1/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.20.1/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/Dockerfile diff --git a/linux/nginx/latest/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.20.1/rtmp-hls/Makefile similarity index 100% rename from linux/nginx/latest/rtmp-hls/Makefile rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/Makefile diff --git a/linux/nginx/1.20.1/rtmp-hls/README.md b/linux/ecosystem/nginx/1.20.1/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/README.md diff --git a/linux/nginx/1.20.1/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.20.1/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.20.1/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.20.1/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.20.1/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/1.20.1/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.20.1/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/players/rtmp_hls.html diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/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 similarity index 100% rename from linux/nginx/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/1.20.1/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/1.21.1/main/.env b/linux/ecosystem/nginx/1.21.1/main/.env similarity index 100% rename from linux/nginx/1.21.1/main/.env rename to linux/ecosystem/nginx/1.21.1/main/.env diff --git a/linux/nginx/1.21.1/main/Dockerfile b/linux/ecosystem/nginx/1.21.1/main/Dockerfile similarity index 100% rename from linux/nginx/1.21.1/main/Dockerfile rename to linux/ecosystem/nginx/1.21.1/main/Dockerfile diff --git a/linux/php/latest/Makefile b/linux/ecosystem/nginx/1.21.1/main/Makefile similarity index 100% rename from linux/php/latest/Makefile rename to linux/ecosystem/nginx/1.21.1/main/Makefile diff --git a/linux/nginx/1.21.1/main/README.md b/linux/ecosystem/nginx/1.21.1/main/README.md similarity index 100% rename from linux/nginx/1.21.1/main/README.md rename to linux/ecosystem/nginx/1.21.1/main/README.md diff --git a/linux/nginx/1.21.1/main/docker-compose.yml b/linux/ecosystem/nginx/1.21.1/main/docker-compose.yml similarity index 100% rename from linux/nginx/1.21.1/main/docker-compose.yml rename to linux/ecosystem/nginx/1.21.1/main/docker-compose.yml diff --git a/linux/nginx/1.21.1/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.21.1/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/1.21.1/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.21.1/main/pre/ip2location-description-pak diff --git a/linux/nginx/1.21.1/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.21.1/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/1.21.1/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.21.1/main/pre/luajit2-description-pak diff --git a/linux/nginx/1.21.1/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.21.1/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/1.21.1/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.21.1/main/pre/nginx-description-pak diff --git a/linux/nginx/1.21.1/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.21.1/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/1.21.1/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.21.1/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/1.21.1/php/.env b/linux/ecosystem/nginx/1.21.1/php/.env similarity index 100% rename from linux/nginx/1.21.1/php/.env rename to linux/ecosystem/nginx/1.21.1/php/.env diff --git a/linux/nginx/1.21.1/php/Dockerfile b/linux/ecosystem/nginx/1.21.1/php/Dockerfile similarity index 100% rename from linux/nginx/1.21.1/php/Dockerfile rename to linux/ecosystem/nginx/1.21.1/php/Dockerfile diff --git a/linux/php/php7.2/Makefile b/linux/ecosystem/nginx/1.21.1/php/Makefile similarity index 100% rename from linux/php/php7.2/Makefile rename to linux/ecosystem/nginx/1.21.1/php/Makefile diff --git a/linux/nginx/1.21.1/php/README.md b/linux/ecosystem/nginx/1.21.1/php/README.md similarity index 100% rename from linux/nginx/1.21.1/php/README.md rename to linux/ecosystem/nginx/1.21.1/php/README.md diff --git a/linux/nginx/1.21.1/php/docker-compose.yml b/linux/ecosystem/nginx/1.21.1/php/docker-compose.yml similarity index 100% rename from linux/nginx/1.21.1/php/docker-compose.yml rename to linux/ecosystem/nginx/1.21.1/php/docker-compose.yml diff --git a/linux/nginx/1.21.1/rtmp-hls/.env b/linux/ecosystem/nginx/1.21.1/rtmp-hls/.env similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/.env rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/.env diff --git a/linux/nginx/1.21.1/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.21.1/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/Dockerfile diff --git a/linux/php/php7.3/Makefile b/linux/ecosystem/nginx/1.21.1/rtmp-hls/Makefile similarity index 100% rename from linux/php/php7.3/Makefile rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/Makefile diff --git a/linux/nginx/1.21.1/rtmp-hls/README.md b/linux/ecosystem/nginx/1.21.1/rtmp-hls/README.md similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/README.md diff --git a/linux/nginx/1.21.1/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx.conf diff --git a/linux/nginx/1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/nginx/1.21.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf b/linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/1.21.1/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.21.1/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/1.21.1/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/players/dash.html diff --git a/linux/nginx/1.21.1/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/players/hls.html diff --git a/linux/nginx/1.21.1/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/1.21.1/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/1.21.1/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/players/rtmp_hls.html diff --git a/linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.buster.list similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.sid.list similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.stretch.list similarity index 100% rename from linux/nginx/1.21.1/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/latest/main/.env b/linux/ecosystem/nginx/latest/main/.env similarity index 100% rename from linux/nginx/latest/main/.env rename to linux/ecosystem/nginx/latest/main/.env diff --git a/linux/nginx/latest/main/Dockerfile b/linux/ecosystem/nginx/latest/main/Dockerfile similarity index 100% rename from linux/nginx/latest/main/Dockerfile rename to linux/ecosystem/nginx/latest/main/Dockerfile diff --git a/linux/php/php7.4/Makefile b/linux/ecosystem/nginx/latest/main/Makefile similarity index 100% rename from linux/php/php7.4/Makefile rename to linux/ecosystem/nginx/latest/main/Makefile diff --git a/linux/nginx/latest/main/README.md b/linux/ecosystem/nginx/latest/main/README.md similarity index 100% rename from linux/nginx/latest/main/README.md rename to linux/ecosystem/nginx/latest/main/README.md diff --git a/linux/nginx/latest/main/docker-compose.yml b/linux/ecosystem/nginx/latest/main/docker-compose.yml similarity index 100% rename from linux/nginx/latest/main/docker-compose.yml rename to linux/ecosystem/nginx/latest/main/docker-compose.yml diff --git a/linux/nginx/latest/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/latest/main/pre/ip2location-description-pak similarity index 100% rename from linux/nginx/latest/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/latest/main/pre/ip2location-description-pak diff --git a/linux/nginx/latest/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/latest/main/pre/luajit2-description-pak similarity index 100% rename from linux/nginx/latest/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/latest/main/pre/luajit2-description-pak diff --git a/linux/nginx/latest/main/pre/nginx-description-pak b/linux/ecosystem/nginx/latest/main/pre/nginx-description-pak similarity index 100% rename from linux/nginx/latest/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/latest/main/pre/nginx-description-pak diff --git a/linux/nginx/latest/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/latest/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/nginx/latest/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/latest/main/pre/ngninx.pre.tar.gz diff --git a/linux/nginx/latest/php/.env b/linux/ecosystem/nginx/latest/php/.env similarity index 100% rename from linux/nginx/latest/php/.env rename to linux/ecosystem/nginx/latest/php/.env diff --git a/linux/nginx/latest/php/Dockerfile b/linux/ecosystem/nginx/latest/php/Dockerfile similarity index 100% rename from linux/nginx/latest/php/Dockerfile rename to linux/ecosystem/nginx/latest/php/Dockerfile diff --git a/linux/postgres/10/Makefile b/linux/ecosystem/nginx/latest/php/Makefile similarity index 100% rename from linux/postgres/10/Makefile rename to linux/ecosystem/nginx/latest/php/Makefile diff --git a/linux/nginx/latest/php/README.md b/linux/ecosystem/nginx/latest/php/README.md similarity index 100% rename from linux/nginx/latest/php/README.md rename to linux/ecosystem/nginx/latest/php/README.md diff --git a/linux/nginx/latest/php/docker-compose.yml b/linux/ecosystem/nginx/latest/php/docker-compose.yml similarity index 100% rename from linux/nginx/latest/php/docker-compose.yml rename to linux/ecosystem/nginx/latest/php/docker-compose.yml diff --git a/linux/nginx/latest/rtmp-hls/.env b/linux/ecosystem/nginx/latest/rtmp-hls/.env similarity index 100% rename from linux/nginx/latest/rtmp-hls/.env rename to linux/ecosystem/nginx/latest/rtmp-hls/.env diff --git a/linux/nginx/latest/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/latest/rtmp-hls/Dockerfile similarity index 100% rename from linux/nginx/latest/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/latest/rtmp-hls/Dockerfile diff --git a/linux/postgres/11/Makefile b/linux/ecosystem/nginx/latest/rtmp-hls/Makefile similarity index 100% rename from linux/postgres/11/Makefile rename to linux/ecosystem/nginx/latest/rtmp-hls/Makefile diff --git a/linux/nginx/latest/rtmp-hls/README.md b/linux/ecosystem/nginx/latest/rtmp-hls/README.md similarity index 100% rename from linux/nginx/latest/rtmp-hls/README.md rename to linux/ecosystem/nginx/latest/rtmp-hls/README.md diff --git a/linux/nginx/latest/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/nginx/latest/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx.conf diff --git a/linux/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf similarity index 100% rename from linux/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/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 similarity index 100% rename from linux/nginx/latest/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/latest/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/nginx/latest/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/latest/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/nginx/latest/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/latest/rtmp-hls/docker-compose.yml diff --git a/linux/nginx/latest/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/dash.html similarity index 100% rename from linux/nginx/latest/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/latest/rtmp-hls/players/dash.html diff --git a/linux/nginx/latest/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/hls.html similarity index 100% rename from linux/nginx/latest/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/latest/rtmp-hls/players/hls.html diff --git a/linux/nginx/latest/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/nginx/latest/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/latest/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/nginx/latest/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/nginx/latest/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp.html diff --git a/linux/nginx/latest/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/nginx/latest/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/latest/rtmp-hls/players/rtmp_hls.html diff --git a/linux/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list similarity index 100% rename from linux/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list similarity index 100% rename from linux/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list similarity index 100% rename from linux/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/latest/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/nginx/links.txt b/linux/ecosystem/nginx/links.txt similarity index 100% rename from linux/nginx/links.txt rename to linux/ecosystem/nginx/links.txt diff --git a/linux/php/latest/Dockerfile b/linux/ecosystem/php/latest/Dockerfile similarity index 100% rename from linux/php/latest/Dockerfile rename to linux/ecosystem/php/latest/Dockerfile diff --git a/linux/postgres/12/Makefile b/linux/ecosystem/php/latest/Makefile similarity index 100% rename from linux/postgres/12/Makefile rename to linux/ecosystem/php/latest/Makefile 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/php/latest/docker-compose.yml b/linux/ecosystem/php/latest/docker-compose.yml similarity index 100% rename from linux/php/latest/docker-compose.yml rename to linux/ecosystem/php/latest/docker-compose.yml diff --git a/linux/php/php7.2/Dockerfile b/linux/ecosystem/php/php7.2/Dockerfile similarity index 100% rename from linux/php/php7.2/Dockerfile rename to linux/ecosystem/php/php7.2/Dockerfile diff --git a/linux/postgres/13/Makefile b/linux/ecosystem/php/php7.2/Makefile similarity index 100% rename from linux/postgres/13/Makefile rename to linux/ecosystem/php/php7.2/Makefile 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/php/php7.2/docker-compose.yml b/linux/ecosystem/php/php7.2/docker-compose.yml similarity index 100% rename from linux/php/php7.2/docker-compose.yml rename to linux/ecosystem/php/php7.2/docker-compose.yml diff --git a/linux/php/php7.3/Dockerfile b/linux/ecosystem/php/php7.3/Dockerfile similarity index 100% rename from linux/php/php7.3/Dockerfile rename to linux/ecosystem/php/php7.3/Dockerfile diff --git a/linux/postgres/14/Makefile b/linux/ecosystem/php/php7.3/Makefile similarity index 100% rename from linux/postgres/14/Makefile rename to linux/ecosystem/php/php7.3/Makefile 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/php/php7.3/docker-compose.yml b/linux/ecosystem/php/php7.3/docker-compose.yml similarity index 100% rename from linux/php/php7.3/docker-compose.yml rename to linux/ecosystem/php/php7.3/docker-compose.yml diff --git a/linux/php/php7.4/Dockerfile b/linux/ecosystem/php/php7.4/Dockerfile similarity index 100% rename from linux/php/php7.4/Dockerfile rename to linux/ecosystem/php/php7.4/Dockerfile diff --git a/linux/postgres/8.2/Makefile b/linux/ecosystem/php/php7.4/Makefile similarity index 100% rename from linux/postgres/8.2/Makefile rename to linux/ecosystem/php/php7.4/Makefile 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/php/php7.4/docker-compose.yml b/linux/ecosystem/php/php7.4/docker-compose.yml similarity index 100% rename from linux/php/php7.4/docker-compose.yml rename to linux/ecosystem/php/php7.4/docker-compose.yml diff --git a/linux/postgres/10/Dockerfile b/linux/ecosystem/postgres/10/Dockerfile similarity index 100% rename from linux/postgres/10/Dockerfile rename to linux/ecosystem/postgres/10/Dockerfile diff --git a/linux/postgres/8.3/Makefile b/linux/ecosystem/postgres/10/Makefile similarity index 100% rename from linux/postgres/8.3/Makefile rename to linux/ecosystem/postgres/10/Makefile 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/postgres/10/docker-compose.yml b/linux/ecosystem/postgres/10/docker-compose.yml similarity index 100% rename from linux/postgres/10/docker-compose.yml rename to linux/ecosystem/postgres/10/docker-compose.yml diff --git a/linux/postgres/10/docker-entrypoint.sh b/linux/ecosystem/postgres/10/docker-entrypoint.sh similarity index 100% rename from linux/postgres/10/docker-entrypoint.sh rename to linux/ecosystem/postgres/10/docker-entrypoint.sh diff --git a/linux/postgres/11/Dockerfile b/linux/ecosystem/postgres/11/Dockerfile similarity index 100% rename from linux/postgres/11/Dockerfile rename to linux/ecosystem/postgres/11/Dockerfile diff --git a/linux/postgres/8.4/Makefile b/linux/ecosystem/postgres/11/Makefile similarity index 100% rename from linux/postgres/8.4/Makefile rename to linux/ecosystem/postgres/11/Makefile 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/postgres/11/docker-compose.yml b/linux/ecosystem/postgres/11/docker-compose.yml similarity index 100% rename from linux/postgres/11/docker-compose.yml rename to linux/ecosystem/postgres/11/docker-compose.yml diff --git a/linux/postgres/11/docker-entrypoint.sh b/linux/ecosystem/postgres/11/docker-entrypoint.sh similarity index 100% rename from linux/postgres/11/docker-entrypoint.sh rename to linux/ecosystem/postgres/11/docker-entrypoint.sh diff --git a/linux/postgres/12/Dockerfile b/linux/ecosystem/postgres/12/Dockerfile similarity index 100% rename from linux/postgres/12/Dockerfile rename to linux/ecosystem/postgres/12/Dockerfile diff --git a/linux/postgres/9.0/Makefile b/linux/ecosystem/postgres/12/Makefile similarity index 100% rename from linux/postgres/9.0/Makefile rename to linux/ecosystem/postgres/12/Makefile 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/postgres/12/docker-compose.yml b/linux/ecosystem/postgres/12/docker-compose.yml similarity index 100% rename from linux/postgres/12/docker-compose.yml rename to linux/ecosystem/postgres/12/docker-compose.yml diff --git a/linux/postgres/12/docker-entrypoint.sh b/linux/ecosystem/postgres/12/docker-entrypoint.sh similarity index 100% rename from linux/postgres/12/docker-entrypoint.sh rename to linux/ecosystem/postgres/12/docker-entrypoint.sh diff --git a/linux/postgres/13/Dockerfile b/linux/ecosystem/postgres/13/Dockerfile similarity index 100% rename from linux/postgres/13/Dockerfile rename to linux/ecosystem/postgres/13/Dockerfile diff --git a/linux/postgres/9.1/Makefile b/linux/ecosystem/postgres/13/Makefile similarity index 100% rename from linux/postgres/9.1/Makefile rename to linux/ecosystem/postgres/13/Makefile diff --git a/linux/postgres/13/README.md b/linux/ecosystem/postgres/13/README.md similarity index 100% rename from linux/postgres/13/README.md rename to linux/ecosystem/postgres/13/README.md diff --git a/linux/postgres/13/docker-compose.yml b/linux/ecosystem/postgres/13/docker-compose.yml similarity index 100% rename from linux/postgres/13/docker-compose.yml rename to linux/ecosystem/postgres/13/docker-compose.yml diff --git a/linux/postgres/13/docker-entrypoint.sh b/linux/ecosystem/postgres/13/docker-entrypoint.sh similarity index 100% rename from linux/postgres/13/docker-entrypoint.sh rename to linux/ecosystem/postgres/13/docker-entrypoint.sh diff --git a/linux/postgres/14/Dockerfile b/linux/ecosystem/postgres/14/Dockerfile similarity index 100% rename from linux/postgres/14/Dockerfile rename to linux/ecosystem/postgres/14/Dockerfile diff --git a/linux/postgres/9.2/Makefile b/linux/ecosystem/postgres/14/Makefile similarity index 100% rename from linux/postgres/9.2/Makefile rename to linux/ecosystem/postgres/14/Makefile diff --git a/linux/postgres/14/README.md b/linux/ecosystem/postgres/14/README.md similarity index 100% rename from linux/postgres/14/README.md rename to linux/ecosystem/postgres/14/README.md diff --git a/linux/postgres/14/docker-compose.yml b/linux/ecosystem/postgres/14/docker-compose.yml similarity index 100% rename from linux/postgres/14/docker-compose.yml rename to linux/ecosystem/postgres/14/docker-compose.yml diff --git a/linux/postgres/14/docker-entrypoint.sh b/linux/ecosystem/postgres/14/docker-entrypoint.sh similarity index 100% rename from linux/postgres/14/docker-entrypoint.sh rename to linux/ecosystem/postgres/14/docker-entrypoint.sh diff --git a/linux/postgres/8.2/Dockerfile b/linux/ecosystem/postgres/8.2/Dockerfile similarity index 100% rename from linux/postgres/8.2/Dockerfile rename to linux/ecosystem/postgres/8.2/Dockerfile diff --git a/linux/postgres/9.3/Makefile b/linux/ecosystem/postgres/8.2/Makefile similarity index 100% rename from linux/postgres/9.3/Makefile rename to linux/ecosystem/postgres/8.2/Makefile diff --git a/linux/postgres/8.2/README.md b/linux/ecosystem/postgres/8.2/README.md similarity index 100% rename from linux/postgres/8.2/README.md rename to linux/ecosystem/postgres/8.2/README.md diff --git a/linux/postgres/8.2/docker-compose.yml b/linux/ecosystem/postgres/8.2/docker-compose.yml similarity index 100% rename from linux/postgres/8.2/docker-compose.yml rename to linux/ecosystem/postgres/8.2/docker-compose.yml diff --git a/linux/postgres/8.2/docker-entrypoint.sh b/linux/ecosystem/postgres/8.2/docker-entrypoint.sh similarity index 100% rename from linux/postgres/8.2/docker-entrypoint.sh rename to linux/ecosystem/postgres/8.2/docker-entrypoint.sh diff --git a/linux/postgres/8.3/Dockerfile b/linux/ecosystem/postgres/8.3/Dockerfile similarity index 100% rename from linux/postgres/8.3/Dockerfile rename to linux/ecosystem/postgres/8.3/Dockerfile diff --git a/linux/postgres/9.4/Makefile b/linux/ecosystem/postgres/8.3/Makefile similarity index 100% rename from linux/postgres/9.4/Makefile rename to linux/ecosystem/postgres/8.3/Makefile diff --git a/linux/postgres/8.3/README.md b/linux/ecosystem/postgres/8.3/README.md similarity index 100% rename from linux/postgres/8.3/README.md rename to linux/ecosystem/postgres/8.3/README.md diff --git a/linux/postgres/8.3/docker-compose.yml b/linux/ecosystem/postgres/8.3/docker-compose.yml similarity index 100% rename from linux/postgres/8.3/docker-compose.yml rename to linux/ecosystem/postgres/8.3/docker-compose.yml diff --git a/linux/postgres/8.3/docker-entrypoint.sh b/linux/ecosystem/postgres/8.3/docker-entrypoint.sh similarity index 100% rename from linux/postgres/8.3/docker-entrypoint.sh rename to linux/ecosystem/postgres/8.3/docker-entrypoint.sh diff --git a/linux/postgres/8.4/Dockerfile b/linux/ecosystem/postgres/8.4/Dockerfile similarity index 100% rename from linux/postgres/8.4/Dockerfile rename to linux/ecosystem/postgres/8.4/Dockerfile diff --git a/linux/postgres/9.5/Makefile b/linux/ecosystem/postgres/8.4/Makefile similarity index 100% rename from linux/postgres/9.5/Makefile rename to linux/ecosystem/postgres/8.4/Makefile diff --git a/linux/postgres/8.4/README.md b/linux/ecosystem/postgres/8.4/README.md similarity index 100% rename from linux/postgres/8.4/README.md rename to linux/ecosystem/postgres/8.4/README.md diff --git a/linux/postgres/8.4/docker-compose.yml b/linux/ecosystem/postgres/8.4/docker-compose.yml similarity index 100% rename from linux/postgres/8.4/docker-compose.yml rename to linux/ecosystem/postgres/8.4/docker-compose.yml diff --git a/linux/postgres/8.4/docker-entrypoint.sh b/linux/ecosystem/postgres/8.4/docker-entrypoint.sh similarity index 100% rename from linux/postgres/8.4/docker-entrypoint.sh rename to linux/ecosystem/postgres/8.4/docker-entrypoint.sh diff --git a/linux/postgres/9.0/Dockerfile b/linux/ecosystem/postgres/9.0/Dockerfile similarity index 100% rename from linux/postgres/9.0/Dockerfile rename to linux/ecosystem/postgres/9.0/Dockerfile diff --git a/linux/postgres/9.6/Makefile b/linux/ecosystem/postgres/9.0/Makefile similarity index 100% rename from linux/postgres/9.6/Makefile rename to linux/ecosystem/postgres/9.0/Makefile diff --git a/linux/postgres/9.0/README.md b/linux/ecosystem/postgres/9.0/README.md similarity index 100% rename from linux/postgres/9.0/README.md rename to linux/ecosystem/postgres/9.0/README.md diff --git a/linux/postgres/9.0/docker-compose.yml b/linux/ecosystem/postgres/9.0/docker-compose.yml similarity index 100% rename from linux/postgres/9.0/docker-compose.yml rename to linux/ecosystem/postgres/9.0/docker-compose.yml diff --git a/linux/postgres/9.0/docker-entrypoint.sh b/linux/ecosystem/postgres/9.0/docker-entrypoint.sh similarity index 100% rename from linux/postgres/9.0/docker-entrypoint.sh rename to linux/ecosystem/postgres/9.0/docker-entrypoint.sh diff --git a/linux/postgres/9.1/Dockerfile b/linux/ecosystem/postgres/9.1/Dockerfile similarity index 100% rename from linux/postgres/9.1/Dockerfile rename to linux/ecosystem/postgres/9.1/Dockerfile diff --git a/linux/postgres/latest/Makefile b/linux/ecosystem/postgres/9.1/Makefile similarity index 100% rename from linux/postgres/latest/Makefile rename to linux/ecosystem/postgres/9.1/Makefile diff --git a/linux/postgres/9.1/README.md b/linux/ecosystem/postgres/9.1/README.md similarity index 100% rename from linux/postgres/9.1/README.md rename to linux/ecosystem/postgres/9.1/README.md diff --git a/linux/postgres/9.1/docker-compose.yml b/linux/ecosystem/postgres/9.1/docker-compose.yml similarity index 100% rename from linux/postgres/9.1/docker-compose.yml rename to linux/ecosystem/postgres/9.1/docker-compose.yml diff --git a/linux/postgres/9.1/docker-entrypoint.sh b/linux/ecosystem/postgres/9.1/docker-entrypoint.sh similarity index 100% rename from linux/postgres/9.1/docker-entrypoint.sh rename to linux/ecosystem/postgres/9.1/docker-entrypoint.sh diff --git a/linux/postgres/9.2/Dockerfile b/linux/ecosystem/postgres/9.2/Dockerfile similarity index 100% rename from linux/postgres/9.2/Dockerfile rename to linux/ecosystem/postgres/9.2/Dockerfile diff --git a/linux/qbittorrent/latest/Makefile b/linux/ecosystem/postgres/9.2/Makefile similarity index 100% rename from linux/qbittorrent/latest/Makefile rename to linux/ecosystem/postgres/9.2/Makefile diff --git a/linux/postgres/9.2/README.md b/linux/ecosystem/postgres/9.2/README.md similarity index 100% rename from linux/postgres/9.2/README.md rename to linux/ecosystem/postgres/9.2/README.md diff --git a/linux/postgres/9.2/docker-compose.yml b/linux/ecosystem/postgres/9.2/docker-compose.yml similarity index 100% rename from linux/postgres/9.2/docker-compose.yml rename to linux/ecosystem/postgres/9.2/docker-compose.yml diff --git a/linux/postgres/9.2/docker-entrypoint.sh b/linux/ecosystem/postgres/9.2/docker-entrypoint.sh similarity index 100% rename from linux/postgres/9.2/docker-entrypoint.sh rename to linux/ecosystem/postgres/9.2/docker-entrypoint.sh diff --git a/linux/postgres/9.3/Dockerfile b/linux/ecosystem/postgres/9.3/Dockerfile similarity index 100% rename from linux/postgres/9.3/Dockerfile rename to linux/ecosystem/postgres/9.3/Dockerfile diff --git a/linux/qbittorrent/stable/Makefile b/linux/ecosystem/postgres/9.3/Makefile similarity index 100% rename from linux/qbittorrent/stable/Makefile rename to linux/ecosystem/postgres/9.3/Makefile diff --git a/linux/postgres/9.3/README.md b/linux/ecosystem/postgres/9.3/README.md similarity index 100% rename from linux/postgres/9.3/README.md rename to linux/ecosystem/postgres/9.3/README.md diff --git a/linux/postgres/9.3/docker-compose.yml b/linux/ecosystem/postgres/9.3/docker-compose.yml similarity index 100% rename from linux/postgres/9.3/docker-compose.yml rename to linux/ecosystem/postgres/9.3/docker-compose.yml diff --git a/linux/postgres/9.3/docker-entrypoint.sh b/linux/ecosystem/postgres/9.3/docker-entrypoint.sh similarity index 100% rename from linux/postgres/9.3/docker-entrypoint.sh rename to linux/ecosystem/postgres/9.3/docker-entrypoint.sh diff --git a/linux/postgres/9.4/Dockerfile b/linux/ecosystem/postgres/9.4/Dockerfile similarity index 100% rename from linux/postgres/9.4/Dockerfile rename to linux/ecosystem/postgres/9.4/Dockerfile diff --git a/linux/teamcity/agent/amxx-sdk/Makefile b/linux/ecosystem/postgres/9.4/Makefile similarity index 100% rename from linux/teamcity/agent/amxx-sdk/Makefile rename to linux/ecosystem/postgres/9.4/Makefile diff --git a/linux/postgres/9.4/README.md b/linux/ecosystem/postgres/9.4/README.md similarity index 100% rename from linux/postgres/9.4/README.md rename to linux/ecosystem/postgres/9.4/README.md diff --git a/linux/postgres/9.4/docker-compose.yml b/linux/ecosystem/postgres/9.4/docker-compose.yml similarity index 100% rename from linux/postgres/9.4/docker-compose.yml rename to linux/ecosystem/postgres/9.4/docker-compose.yml diff --git a/linux/postgres/9.4/docker-entrypoint.sh b/linux/ecosystem/postgres/9.4/docker-entrypoint.sh similarity index 100% rename from linux/postgres/9.4/docker-entrypoint.sh rename to linux/ecosystem/postgres/9.4/docker-entrypoint.sh diff --git a/linux/postgres/9.5/Dockerfile b/linux/ecosystem/postgres/9.5/Dockerfile similarity index 100% rename from linux/postgres/9.5/Dockerfile rename to linux/ecosystem/postgres/9.5/Dockerfile diff --git a/linux/teamcity/agent/android-sdk/Makefile b/linux/ecosystem/postgres/9.5/Makefile similarity index 100% rename from linux/teamcity/agent/android-sdk/Makefile rename to linux/ecosystem/postgres/9.5/Makefile diff --git a/linux/postgres/9.5/README.md b/linux/ecosystem/postgres/9.5/README.md similarity index 100% rename from linux/postgres/9.5/README.md rename to linux/ecosystem/postgres/9.5/README.md diff --git a/linux/postgres/9.5/docker-compose.yml b/linux/ecosystem/postgres/9.5/docker-compose.yml similarity index 100% rename from linux/postgres/9.5/docker-compose.yml rename to linux/ecosystem/postgres/9.5/docker-compose.yml diff --git a/linux/postgres/9.5/docker-entrypoint.sh b/linux/ecosystem/postgres/9.5/docker-entrypoint.sh similarity index 100% rename from linux/postgres/9.5/docker-entrypoint.sh rename to linux/ecosystem/postgres/9.5/docker-entrypoint.sh diff --git a/linux/postgres/9.6/Dockerfile b/linux/ecosystem/postgres/9.6/Dockerfile similarity index 100% rename from linux/postgres/9.6/Dockerfile rename to linux/ecosystem/postgres/9.6/Dockerfile diff --git a/linux/teamcity/agent/atlassian-sdk/Makefile b/linux/ecosystem/postgres/9.6/Makefile similarity index 100% rename from linux/teamcity/agent/atlassian-sdk/Makefile rename to linux/ecosystem/postgres/9.6/Makefile diff --git a/linux/postgres/9.6/README.md b/linux/ecosystem/postgres/9.6/README.md similarity index 100% rename from linux/postgres/9.6/README.md rename to linux/ecosystem/postgres/9.6/README.md diff --git a/linux/postgres/9.6/docker-compose.yml b/linux/ecosystem/postgres/9.6/docker-compose.yml similarity index 100% rename from linux/postgres/9.6/docker-compose.yml rename to linux/ecosystem/postgres/9.6/docker-compose.yml diff --git a/linux/postgres/9.6/docker-entrypoint.sh b/linux/ecosystem/postgres/9.6/docker-entrypoint.sh similarity index 100% rename from linux/postgres/9.6/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/postgres/README.md b/linux/ecosystem/postgres/README.md similarity index 100% rename from linux/postgres/README.md rename to linux/ecosystem/postgres/README.md diff --git a/linux/postgres/latest/Dockerfile b/linux/ecosystem/postgres/latest/Dockerfile similarity index 100% rename from linux/postgres/latest/Dockerfile rename to linux/ecosystem/postgres/latest/Dockerfile diff --git a/linux/teamcity/agent/dotnet-sdk/Makefile b/linux/ecosystem/postgres/latest/Makefile similarity index 100% rename from linux/teamcity/agent/dotnet-sdk/Makefile rename to linux/ecosystem/postgres/latest/Makefile diff --git a/linux/postgres/latest/README.md b/linux/ecosystem/postgres/latest/README.md similarity index 100% rename from linux/postgres/latest/README.md rename to linux/ecosystem/postgres/latest/README.md diff --git a/linux/postgres/latest/docker-compose.yml b/linux/ecosystem/postgres/latest/docker-compose.yml similarity index 100% rename from linux/postgres/latest/docker-compose.yml rename to linux/ecosystem/postgres/latest/docker-compose.yml diff --git a/linux/postgres/latest/docker-entrypoint.sh b/linux/ecosystem/postgres/latest/docker-entrypoint.sh similarity index 100% rename from linux/postgres/latest/docker-entrypoint.sh rename to linux/ecosystem/postgres/latest/docker-entrypoint.sh 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/teamcity/agent/latest/Makefile b/linux/ecosystem/qbittorrent/latest/Makefile similarity index 100% rename from linux/teamcity/agent/latest/Makefile rename to linux/ecosystem/qbittorrent/latest/Makefile 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.example.yml b/linux/ecosystem/qbittorrent/latest/docker-compose.example.yml similarity index 100% rename from linux/qbittorrent/latest/docker-compose.example.yml rename to linux/ecosystem/qbittorrent/latest/docker-compose.example.yml diff --git a/linux/qbittorrent/latest/docker-compose.yml b/linux/ecosystem/qbittorrent/latest/docker-compose.yml similarity index 100% rename from linux/qbittorrent/latest/docker-compose.yml rename to linux/ecosystem/qbittorrent/latest/docker-compose.yml 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/teamcity/agent/node12/Makefile b/linux/ecosystem/qbittorrent/stable/Makefile similarity index 100% rename from linux/teamcity/agent/node12/Makefile rename to linux/ecosystem/qbittorrent/stable/Makefile diff --git a/linux/qbittorrent/stable/docker-compose.yml b/linux/ecosystem/qbittorrent/stable/docker-compose.yml similarity index 100% rename from linux/qbittorrent/stable/docker-compose.yml rename to linux/ecosystem/qbittorrent/stable/docker-compose.yml 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/teamcity/agent/amxx-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/amxx-sdk/Dockerfile similarity index 100% rename from linux/teamcity/agent/amxx-sdk/Dockerfile rename to linux/ecosystem/teamcity/agent/amxx-sdk/Dockerfile diff --git a/linux/teamcity/agent/node14/Makefile b/linux/ecosystem/teamcity/agent/amxx-sdk/Makefile similarity index 100% rename from linux/teamcity/agent/node14/Makefile rename to linux/ecosystem/teamcity/agent/amxx-sdk/Makefile diff --git a/linux/teamcity/agent/amxx-sdk/README.md b/linux/ecosystem/teamcity/agent/amxx-sdk/README.md similarity index 100% rename from linux/teamcity/agent/amxx-sdk/README.md rename to linux/ecosystem/teamcity/agent/amxx-sdk/README.md diff --git a/linux/teamcity/agent/amxx-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/amxx-sdk/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/amxx-sdk/docker-compose.yml rename to linux/ecosystem/teamcity/agent/amxx-sdk/docker-compose.yml diff --git a/linux/teamcity/agent/android-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/android-sdk/Dockerfile similarity index 100% rename from linux/teamcity/agent/android-sdk/Dockerfile rename to linux/ecosystem/teamcity/agent/android-sdk/Dockerfile diff --git a/linux/teamcity/agent/node15/Makefile b/linux/ecosystem/teamcity/agent/android-sdk/Makefile similarity index 100% rename from linux/teamcity/agent/node15/Makefile rename to linux/ecosystem/teamcity/agent/android-sdk/Makefile diff --git a/linux/teamcity/agent/android-sdk/README.md b/linux/ecosystem/teamcity/agent/android-sdk/README.md similarity index 100% rename from linux/teamcity/agent/android-sdk/README.md rename to linux/ecosystem/teamcity/agent/android-sdk/README.md diff --git a/linux/teamcity/agent/android-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/android-sdk/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/android-sdk/docker-compose.yml rename to linux/ecosystem/teamcity/agent/android-sdk/docker-compose.yml diff --git a/linux/teamcity/agent/atlassian-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/atlassian-sdk/Dockerfile similarity index 100% rename from linux/teamcity/agent/atlassian-sdk/Dockerfile rename to linux/ecosystem/teamcity/agent/atlassian-sdk/Dockerfile diff --git a/linux/teamcity/agent/node16/Makefile b/linux/ecosystem/teamcity/agent/atlassian-sdk/Makefile similarity index 100% rename from linux/teamcity/agent/node16/Makefile rename to linux/ecosystem/teamcity/agent/atlassian-sdk/Makefile diff --git a/linux/teamcity/agent/atlassian-sdk/README.md b/linux/ecosystem/teamcity/agent/atlassian-sdk/README.md similarity index 100% rename from linux/teamcity/agent/atlassian-sdk/README.md rename to linux/ecosystem/teamcity/agent/atlassian-sdk/README.md diff --git a/linux/teamcity/agent/atlassian-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/atlassian-sdk/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/atlassian-sdk/docker-compose.yml rename to linux/ecosystem/teamcity/agent/atlassian-sdk/docker-compose.yml diff --git a/linux/teamcity/agent/dotnet-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/dotnet-sdk/Dockerfile similarity index 100% rename from linux/teamcity/agent/dotnet-sdk/Dockerfile rename to linux/ecosystem/teamcity/agent/dotnet-sdk/Dockerfile diff --git a/linux/teamcity/agent/php7.2/Makefile b/linux/ecosystem/teamcity/agent/dotnet-sdk/Makefile similarity index 100% rename from linux/teamcity/agent/php7.2/Makefile rename to linux/ecosystem/teamcity/agent/dotnet-sdk/Makefile diff --git a/linux/teamcity/agent/dotnet-sdk/README.md b/linux/ecosystem/teamcity/agent/dotnet-sdk/README.md similarity index 100% rename from linux/teamcity/agent/dotnet-sdk/README.md rename to linux/ecosystem/teamcity/agent/dotnet-sdk/README.md diff --git a/linux/teamcity/agent/dotnet-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/dotnet-sdk/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/dotnet-sdk/docker-compose.yml rename to linux/ecosystem/teamcity/agent/dotnet-sdk/docker-compose.yml diff --git a/linux/teamcity/agent/latest/Dockerfile b/linux/ecosystem/teamcity/agent/latest/Dockerfile similarity index 100% rename from linux/teamcity/agent/latest/Dockerfile rename to linux/ecosystem/teamcity/agent/latest/Dockerfile diff --git a/linux/teamcity/agent/php7.3/Makefile b/linux/ecosystem/teamcity/agent/latest/Makefile similarity index 100% rename from linux/teamcity/agent/php7.3/Makefile rename to linux/ecosystem/teamcity/agent/latest/Makefile diff --git a/linux/teamcity/agent/latest/README.md b/linux/ecosystem/teamcity/agent/latest/README.md similarity index 100% rename from linux/teamcity/agent/latest/README.md rename to linux/ecosystem/teamcity/agent/latest/README.md diff --git a/linux/teamcity/agent/latest/docker-compose.yml b/linux/ecosystem/teamcity/agent/latest/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/latest/docker-compose.yml rename to linux/ecosystem/teamcity/agent/latest/docker-compose.yml diff --git a/linux/teamcity/agent/latest/run-agent.sh b/linux/ecosystem/teamcity/agent/latest/run-agent.sh similarity index 100% rename from linux/teamcity/agent/latest/run-agent.sh rename to linux/ecosystem/teamcity/agent/latest/run-agent.sh diff --git a/linux/teamcity/agent/latest/run-docker.sh b/linux/ecosystem/teamcity/agent/latest/run-docker.sh similarity index 100% rename from linux/teamcity/agent/latest/run-docker.sh rename to linux/ecosystem/teamcity/agent/latest/run-docker.sh diff --git a/linux/teamcity/agent/latest/run-services.sh b/linux/ecosystem/teamcity/agent/latest/run-services.sh similarity index 100% rename from linux/teamcity/agent/latest/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/teamcity/agent/node12/Dockerfile b/linux/ecosystem/teamcity/agent/node12/Dockerfile similarity index 100% rename from linux/teamcity/agent/node12/Dockerfile rename to linux/ecosystem/teamcity/agent/node12/Dockerfile diff --git a/linux/teamcity/agent/php7.4/Makefile b/linux/ecosystem/teamcity/agent/node12/Makefile similarity index 100% rename from linux/teamcity/agent/php7.4/Makefile rename to linux/ecosystem/teamcity/agent/node12/Makefile diff --git a/linux/teamcity/agent/node12/README.md b/linux/ecosystem/teamcity/agent/node12/README.md similarity index 100% rename from linux/teamcity/agent/node12/README.md rename to linux/ecosystem/teamcity/agent/node12/README.md diff --git a/linux/teamcity/agent/node12/docker-compose.yml b/linux/ecosystem/teamcity/agent/node12/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/node12/docker-compose.yml rename to linux/ecosystem/teamcity/agent/node12/docker-compose.yml diff --git a/linux/teamcity/agent/node14/Dockerfile b/linux/ecosystem/teamcity/agent/node14/Dockerfile similarity index 100% rename from linux/teamcity/agent/node14/Dockerfile rename to linux/ecosystem/teamcity/agent/node14/Dockerfile diff --git a/linux/teamcity/agent/steam-sdk/Makefile b/linux/ecosystem/teamcity/agent/node14/Makefile similarity index 100% rename from linux/teamcity/agent/steam-sdk/Makefile rename to linux/ecosystem/teamcity/agent/node14/Makefile diff --git a/linux/teamcity/agent/node14/README.md b/linux/ecosystem/teamcity/agent/node14/README.md similarity index 100% rename from linux/teamcity/agent/node14/README.md rename to linux/ecosystem/teamcity/agent/node14/README.md diff --git a/linux/teamcity/agent/node14/docker-compose.yml b/linux/ecosystem/teamcity/agent/node14/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/node14/docker-compose.yml rename to linux/ecosystem/teamcity/agent/node14/docker-compose.yml diff --git a/linux/teamcity/agent/node15/Dockerfile b/linux/ecosystem/teamcity/agent/node15/Dockerfile similarity index 100% rename from linux/teamcity/agent/node15/Dockerfile rename to linux/ecosystem/teamcity/agent/node15/Dockerfile diff --git a/linux/teamcity/server/Makefile b/linux/ecosystem/teamcity/agent/node15/Makefile similarity index 100% rename from linux/teamcity/server/Makefile rename to linux/ecosystem/teamcity/agent/node15/Makefile diff --git a/linux/teamcity/agent/node15/README.md b/linux/ecosystem/teamcity/agent/node15/README.md similarity index 100% rename from linux/teamcity/agent/node15/README.md rename to linux/ecosystem/teamcity/agent/node15/README.md diff --git a/linux/teamcity/agent/node15/docker-compose.yml b/linux/ecosystem/teamcity/agent/node15/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/node15/docker-compose.yml rename to linux/ecosystem/teamcity/agent/node15/docker-compose.yml diff --git a/linux/teamcity/agent/node16/Dockerfile b/linux/ecosystem/teamcity/agent/node16/Dockerfile similarity index 100% rename from linux/teamcity/agent/node16/Dockerfile rename to linux/ecosystem/teamcity/agent/node16/Dockerfile diff --git a/linux/testrail/latest/Makefile b/linux/ecosystem/teamcity/agent/node16/Makefile similarity index 100% rename from linux/testrail/latest/Makefile rename to linux/ecosystem/teamcity/agent/node16/Makefile diff --git a/linux/teamcity/agent/node16/README.md b/linux/ecosystem/teamcity/agent/node16/README.md similarity index 100% rename from linux/teamcity/agent/node16/README.md rename to linux/ecosystem/teamcity/agent/node16/README.md diff --git a/linux/teamcity/agent/node16/docker-compose.yml b/linux/ecosystem/teamcity/agent/node16/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/node16/docker-compose.yml rename to linux/ecosystem/teamcity/agent/node16/docker-compose.yml diff --git a/linux/teamcity/agent/php7.2/Dockerfile b/linux/ecosystem/teamcity/agent/php7.2/Dockerfile similarity index 100% rename from linux/teamcity/agent/php7.2/Dockerfile rename to linux/ecosystem/teamcity/agent/php7.2/Dockerfile diff --git a/linux/vk2discord/latest/Makefile b/linux/ecosystem/teamcity/agent/php7.2/Makefile similarity index 100% rename from linux/vk2discord/latest/Makefile rename to linux/ecosystem/teamcity/agent/php7.2/Makefile diff --git a/linux/teamcity/agent/php7.2/README.md b/linux/ecosystem/teamcity/agent/php7.2/README.md similarity index 100% rename from linux/teamcity/agent/php7.2/README.md rename to linux/ecosystem/teamcity/agent/php7.2/README.md diff --git a/linux/teamcity/agent/php7.2/docker-compose.yml b/linux/ecosystem/teamcity/agent/php7.2/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/php7.2/docker-compose.yml rename to linux/ecosystem/teamcity/agent/php7.2/docker-compose.yml diff --git a/linux/teamcity/agent/php7.2/run-agent.sh b/linux/ecosystem/teamcity/agent/php7.2/run-agent.sh similarity index 100% rename from linux/teamcity/agent/php7.2/run-agent.sh rename to linux/ecosystem/teamcity/agent/php7.2/run-agent.sh diff --git a/linux/teamcity/agent/php7.2/run-services.sh b/linux/ecosystem/teamcity/agent/php7.2/run-services.sh similarity index 100% rename from linux/teamcity/agent/php7.2/run-services.sh rename to linux/ecosystem/teamcity/agent/php7.2/run-services.sh diff --git a/linux/teamcity/agent/latest/sources.sid.list b/linux/ecosystem/teamcity/agent/php7.2/sources.sid.list similarity index 100% rename from linux/teamcity/agent/latest/sources.sid.list rename to linux/ecosystem/teamcity/agent/php7.2/sources.sid.list diff --git a/linux/teamcity/agent/php7.3/Dockerfile b/linux/ecosystem/teamcity/agent/php7.3/Dockerfile similarity index 100% rename from linux/teamcity/agent/php7.3/Dockerfile rename to linux/ecosystem/teamcity/agent/php7.3/Dockerfile diff --git a/linux/zabbix/agent/Makefile b/linux/ecosystem/teamcity/agent/php7.3/Makefile similarity index 100% rename from linux/zabbix/agent/Makefile rename to linux/ecosystem/teamcity/agent/php7.3/Makefile diff --git a/linux/teamcity/agent/php7.3/README.md b/linux/ecosystem/teamcity/agent/php7.3/README.md similarity index 100% rename from linux/teamcity/agent/php7.3/README.md rename to linux/ecosystem/teamcity/agent/php7.3/README.md diff --git a/linux/teamcity/agent/php7.3/docker-compose.yml b/linux/ecosystem/teamcity/agent/php7.3/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/php7.3/docker-compose.yml rename to linux/ecosystem/teamcity/agent/php7.3/docker-compose.yml diff --git a/linux/teamcity/agent/php7.3/run-agent.sh b/linux/ecosystem/teamcity/agent/php7.3/run-agent.sh similarity index 100% rename from linux/teamcity/agent/php7.3/run-agent.sh rename to linux/ecosystem/teamcity/agent/php7.3/run-agent.sh diff --git a/linux/teamcity/agent/php7.3/run-services.sh b/linux/ecosystem/teamcity/agent/php7.3/run-services.sh similarity index 100% rename from linux/teamcity/agent/php7.3/run-services.sh rename to linux/ecosystem/teamcity/agent/php7.3/run-services.sh diff --git a/linux/teamcity/agent/php7.2/sources.sid.list b/linux/ecosystem/teamcity/agent/php7.3/sources.sid.list similarity index 100% rename from linux/teamcity/agent/php7.2/sources.sid.list rename to linux/ecosystem/teamcity/agent/php7.3/sources.sid.list diff --git a/linux/teamcity/agent/php7.4/Dockerfile b/linux/ecosystem/teamcity/agent/php7.4/Dockerfile similarity index 100% rename from linux/teamcity/agent/php7.4/Dockerfile rename to linux/ecosystem/teamcity/agent/php7.4/Dockerfile diff --git a/linux/zabbix/java-gateway/Makefile b/linux/ecosystem/teamcity/agent/php7.4/Makefile similarity index 100% rename from linux/zabbix/java-gateway/Makefile rename to linux/ecosystem/teamcity/agent/php7.4/Makefile diff --git a/linux/teamcity/agent/php7.4/README.md b/linux/ecosystem/teamcity/agent/php7.4/README.md similarity index 100% rename from linux/teamcity/agent/php7.4/README.md rename to linux/ecosystem/teamcity/agent/php7.4/README.md diff --git a/linux/teamcity/agent/php7.4/docker-compose.yml b/linux/ecosystem/teamcity/agent/php7.4/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/php7.4/docker-compose.yml rename to linux/ecosystem/teamcity/agent/php7.4/docker-compose.yml diff --git a/linux/teamcity/agent/php7.4/run-agent.sh b/linux/ecosystem/teamcity/agent/php7.4/run-agent.sh similarity index 100% rename from linux/teamcity/agent/php7.4/run-agent.sh rename to linux/ecosystem/teamcity/agent/php7.4/run-agent.sh diff --git a/linux/teamcity/agent/php7.4/run-services.sh b/linux/ecosystem/teamcity/agent/php7.4/run-services.sh similarity index 100% rename from linux/teamcity/agent/php7.4/run-services.sh rename to linux/ecosystem/teamcity/agent/php7.4/run-services.sh diff --git a/linux/teamcity/agent/php7.3/sources.sid.list b/linux/ecosystem/teamcity/agent/php7.4/sources.sid.list similarity index 100% rename from linux/teamcity/agent/php7.3/sources.sid.list rename to linux/ecosystem/teamcity/agent/php7.4/sources.sid.list diff --git a/linux/teamcity/agent/steam-sdk/Dockerfile b/linux/ecosystem/teamcity/agent/steam-sdk/Dockerfile similarity index 100% rename from linux/teamcity/agent/steam-sdk/Dockerfile rename to linux/ecosystem/teamcity/agent/steam-sdk/Dockerfile diff --git a/linux/zabbix/proxy/Makefile b/linux/ecosystem/teamcity/agent/steam-sdk/Makefile similarity index 100% rename from linux/zabbix/proxy/Makefile rename to linux/ecosystem/teamcity/agent/steam-sdk/Makefile diff --git a/linux/teamcity/agent/steam-sdk/README.md b/linux/ecosystem/teamcity/agent/steam-sdk/README.md similarity index 100% rename from linux/teamcity/agent/steam-sdk/README.md rename to linux/ecosystem/teamcity/agent/steam-sdk/README.md diff --git a/linux/teamcity/agent/steam-sdk/docker-compose.yml b/linux/ecosystem/teamcity/agent/steam-sdk/docker-compose.yml similarity index 100% rename from linux/teamcity/agent/steam-sdk/docker-compose.yml rename to linux/ecosystem/teamcity/agent/steam-sdk/docker-compose.yml diff --git a/linux/testrail/latest/Dockerfile b/linux/ecosystem/testrail/latest/Dockerfile similarity index 100% rename from linux/testrail/latest/Dockerfile rename to linux/ecosystem/testrail/latest/Dockerfile diff --git a/linux/zabbix/server/Makefile b/linux/ecosystem/testrail/latest/Makefile similarity index 100% rename from linux/zabbix/server/Makefile rename to linux/ecosystem/testrail/latest/Makefile diff --git a/linux/testrail/latest/README.md b/linux/ecosystem/testrail/latest/README.md similarity index 100% rename from linux/testrail/latest/README.md rename to linux/ecosystem/testrail/latest/README.md diff --git a/linux/testrail/latest/apache_testrail.conf b/linux/ecosystem/testrail/latest/apache_testrail.conf similarity index 100% rename from linux/testrail/latest/apache_testrail.conf rename to linux/ecosystem/testrail/latest/apache_testrail.conf diff --git a/linux/testrail/latest/docker-compose.yml b/linux/ecosystem/testrail/latest/docker-compose.yml similarity index 100% rename from linux/testrail/latest/docker-compose.yml rename to linux/ecosystem/testrail/latest/docker-compose.yml diff --git a/linux/testrail/latest/run.sh b/linux/ecosystem/testrail/latest/run.sh similarity index 100% rename from linux/testrail/latest/run.sh rename to linux/ecosystem/testrail/latest/run.sh diff --git a/linux/vk2discord/latest/Dockerfile b/linux/ecosystem/vk2discord/latest/Dockerfile similarity index 100% rename from linux/vk2discord/latest/Dockerfile rename to linux/ecosystem/vk2discord/latest/Dockerfile diff --git a/linux/zabbix/web/Makefile b/linux/ecosystem/vk2discord/latest/Makefile similarity index 100% rename from linux/zabbix/web/Makefile rename to linux/ecosystem/vk2discord/latest/Makefile diff --git a/linux/vk2discord/latest/README.md b/linux/ecosystem/vk2discord/latest/README.md similarity index 100% rename from linux/vk2discord/latest/README.md rename to linux/ecosystem/vk2discord/latest/README.md diff --git a/linux/vk2discord/latest/docker-compose.yml b/linux/ecosystem/vk2discord/latest/docker-compose.yml similarity index 100% rename from linux/vk2discord/latest/docker-compose.yml rename to linux/ecosystem/vk2discord/latest/docker-compose.yml diff --git a/linux/epicmorg/edge/main/sources.list b/linux/epicmorg/edge/main/sources.list deleted file mode 100644 index 72e28c570..000000000 --- a/linux/epicmorg/edge/main/sources.list +++ /dev/null @@ -1,21 +0,0 @@ -#main -deb http://ftp.ru.debian.org/debian/ bullseye main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ bullseye main contrib non-free -deb http://ftp.ru.debian.org/debian/ bullseye-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ bullseye-updates main contrib non-free -deb http://ftp.ru.debian.org/debian/ bullseye-backports main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ bullseye-backports main contrib non-free -deb http://ftp.ru.debian.org/debian/ bullseye-proposed-updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian/ bullseye-proposed-updates main contrib non-free - -#security -deb http://ftp.ru.debian.org/debian-security/ bullseye-security main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ bullseye-security main contrib non-free -deb http://ftp.ru.debian.org/debian-security/ bullseye-security/updates main contrib non-free -deb-src http://ftp.ru.debian.org/debian-security/ bullseye-security/updates main contrib non-free - -##multimedia -# deb http://ftp.ru.debian.org/debian-multimedia/ bullseye main non-free -# deb-src http://ftp.ru.debian.org/debian-multimedia/ bullseye main non-free -# deb http://ftp.ru.debian.org/debian-multimedia/ bullseye-backports main -# deb-src http://ftp.ru.debian.org/debian-multimedia/ bullseye-backports main 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/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/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/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/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/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/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/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/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/22/sources.list b/linux/nextcloud/22/sources.list deleted file mode 100644 index fd3092816..000000000 --- a/linux/nextcloud/22/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/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/teamcity/agent/php7.4/sources.sid.list b/linux/teamcity/agent/php7.4/sources.sid.list deleted file mode 100644 index d3d573cdc..000000000 --- a/linux/teamcity/agent/php7.4/sources.sid.list +++ /dev/null @@ -1,7 +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 - -##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 From d8a3b6e83569fa0b2db4a8d410294ca9d2a80922 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 21:38:50 +0300 Subject: [PATCH 100/144] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a49bedb63..30ef3398b 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ | [![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 different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We are support `linux x86_64` docker engine (`Win64` still in testing). +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). -* At `linux/advanced` folder placed improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. This images just forked from original developers and few reworked. -* In `linux/ecosystem` placed images developed by our team like full `Atlassian Stack`, compilled `nginx`, `php`, `testrail` and othres. +* `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) From 99bfdc5a21e5e1272b8321f32580672831cb4824 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 21 Sep 2021 21:39:03 +0300 Subject: [PATCH 101/144] Update DESCRIPTION.md --- DESCRIPTION.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION.md b/DESCRIPTION.md index 3f93db832..fb86c58aa 100644 --- a/DESCRIPTION.md +++ b/DESCRIPTION.md @@ -6,10 +6,10 @@ | [![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 different docker images for production use. This repo contains 2 types of images - `advanced` and `ecosystem`. We are support `linux x86_64` docker engine (`Win64` still in testing). +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). -* At `linux/advanced` folder placed improved images like `nextcloud` or `teamcity server`, `zabbix collection`, etc. This images just forked from original developers and few reworked. -* In `linux/ecosystem` placed images developed by our team like full `Atlassian Stack`, compilled `nginx`, `php`, `testrail` and othres. +* `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) From 3ddce0c7dff2064dcb47e77253bfa093beb705de Mon Sep 17 00:00:00 2001 From: Odmin Date: Tue, 21 Sep 2021 21:40:53 +0300 Subject: [PATCH 102/144] nginx 1.21.3 --- CHANGELOG.md | 1 + linux/ecosystem/nginx/1.21.1/main/.env | 2 -- linux/ecosystem/nginx/1.21.1/php/.env | 2 -- linux/ecosystem/nginx/1.21.1/rtmp-hls/.env | 2 -- linux/ecosystem/nginx/1.21.3/main/.env | 2 ++ .../nginx/{1.21.1 => 1.21.3}/main/Dockerfile | 2 +- .../nginx/{1.21.1 => 1.21.3}/main/Makefile | 0 .../nginx/{1.21.1 => 1.21.3}/main/README.md | 0 .../{1.21.1 => 1.21.3}/main/docker-compose.yml | 0 .../main/pre/ip2location-description-pak | 0 .../main/pre/luajit2-description-pak | 0 .../main/pre/nginx-description-pak | 0 .../{1.21.1 => 1.21.3}/main/pre/ngninx.pre.tar.gz | Bin linux/ecosystem/nginx/1.21.3/php/.env | 2 ++ .../nginx/{1.21.1 => 1.21.3}/php/Dockerfile | 0 .../ecosystem/nginx/{1.21.1 => 1.21.3}/php/Makefile | 0 .../nginx/{1.21.1 => 1.21.3}/php/README.md | 0 .../nginx/{1.21.1 => 1.21.3}/php/docker-compose.yml | 0 linux/ecosystem/nginx/1.21.3/rtmp-hls/.env | 2 ++ .../nginx/{1.21.1 => 1.21.3}/rtmp-hls/Dockerfile | 0 .../nginx/{1.21.1 => 1.21.3}/rtmp-hls/Makefile | 0 .../nginx/{1.21.1 => 1.21.3}/rtmp-hls/README.md | 0 .../{1.21.1 => 1.21.3}/rtmp-hls/conf/nginx.conf | 0 .../rtmp-hls/conf/nginx_no-ffmpeg.conf | 0 .../rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf | 0 .../{1.21.1 => 1.21.3}/rtmp-hls/docker-compose.yml | 0 .../{1.21.1 => 1.21.3}/rtmp-hls/players/dash.html | 0 .../{1.21.1 => 1.21.3}/rtmp-hls/players/hls.html | 0 .../rtmp-hls/players/hls_hlsjs.html | 0 .../{1.21.1 => 1.21.3}/rtmp-hls/players/rtmp.html | 0 .../rtmp-hls/players/rtmp_hls.html | 0 .../rtmp-hls/sources.list.d/sources.buster.list | 0 .../rtmp-hls/sources.list.d/sources.sid.list | 0 .../rtmp-hls/sources.list.d/sources.stretch.list | 0 linux/ecosystem/nginx/latest/main/.env | 2 +- linux/ecosystem/nginx/latest/php/.env | 2 +- linux/ecosystem/nginx/latest/rtmp-hls/.env | 2 +- linux/ecosystem/nginx/links.txt | 2 +- 38 files changed, 12 insertions(+), 11 deletions(-) delete mode 100644 linux/ecosystem/nginx/1.21.1/main/.env delete mode 100644 linux/ecosystem/nginx/1.21.1/php/.env delete mode 100644 linux/ecosystem/nginx/1.21.1/rtmp-hls/.env create mode 100644 linux/ecosystem/nginx/1.21.3/main/.env rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/main/Dockerfile (99%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/main/Makefile (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/main/README.md (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/main/docker-compose.yml (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/main/pre/ip2location-description-pak (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/main/pre/luajit2-description-pak (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/main/pre/nginx-description-pak (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/main/pre/ngninx.pre.tar.gz (100%) create mode 100644 linux/ecosystem/nginx/1.21.3/php/.env rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/php/Dockerfile (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/php/Makefile (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/php/README.md (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/php/docker-compose.yml (100%) create mode 100644 linux/ecosystem/nginx/1.21.3/rtmp-hls/.env rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/Dockerfile (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/Makefile (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/README.md (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/conf/nginx.conf (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/conf/nginx_no-ffmpeg.conf (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/docker-compose.yml (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/players/dash.html (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/players/hls.html (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/players/hls_hlsjs.html (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/players/rtmp.html (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/players/rtmp_hls.html (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/sources.list.d/sources.buster.list (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/sources.list.d/sources.sid.list (100%) rename linux/ecosystem/nginx/{1.21.1 => 1.21.3}/rtmp-hls/sources.list.d/sources.stretch.list (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c4e883cd..735ec6494 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ * 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 diff --git a/linux/ecosystem/nginx/1.21.1/main/.env b/linux/ecosystem/nginx/1.21.1/main/.env deleted file mode 100644 index eab5d9214..000000000 --- a/linux/ecosystem/nginx/1.21.1/main/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.21.1 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz diff --git a/linux/ecosystem/nginx/1.21.1/php/.env b/linux/ecosystem/nginx/1.21.1/php/.env deleted file mode 100644 index eab5d9214..000000000 --- a/linux/ecosystem/nginx/1.21.1/php/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.21.1 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/.env b/linux/ecosystem/nginx/1.21.1/rtmp-hls/.env deleted file mode 100644 index eab5d9214..000000000 --- a/linux/ecosystem/nginx/1.21.1/rtmp-hls/.env +++ /dev/null @@ -1,2 +0,0 @@ -NGINX_VERSION=1.21.1 -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz 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.1/main/Dockerfile b/linux/ecosystem/nginx/1.21.3/main/Dockerfile similarity index 99% rename from linux/ecosystem/nginx/1.21.1/main/Dockerfile rename to linux/ecosystem/nginx/1.21.3/main/Dockerfile index aef90bcb1..7db814ccc 100644 --- a/linux/ecosystem/nginx/1.21.1/main/Dockerfile +++ b/linux/ecosystem/nginx/1.21.3/main/Dockerfile @@ -47,7 +47,7 @@ RUN cd ${SRC_DIR} && \ 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 && \ + 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 ################################################################## diff --git a/linux/ecosystem/nginx/1.21.1/main/Makefile b/linux/ecosystem/nginx/1.21.3/main/Makefile similarity index 100% rename from linux/ecosystem/nginx/1.21.1/main/Makefile rename to linux/ecosystem/nginx/1.21.3/main/Makefile diff --git a/linux/ecosystem/nginx/1.21.1/main/README.md b/linux/ecosystem/nginx/1.21.3/main/README.md similarity index 100% rename from linux/ecosystem/nginx/1.21.1/main/README.md rename to linux/ecosystem/nginx/1.21.3/main/README.md diff --git a/linux/ecosystem/nginx/1.21.1/main/docker-compose.yml b/linux/ecosystem/nginx/1.21.3/main/docker-compose.yml similarity index 100% rename from linux/ecosystem/nginx/1.21.1/main/docker-compose.yml rename to linux/ecosystem/nginx/1.21.3/main/docker-compose.yml diff --git a/linux/ecosystem/nginx/1.21.1/main/pre/ip2location-description-pak b/linux/ecosystem/nginx/1.21.3/main/pre/ip2location-description-pak similarity index 100% rename from linux/ecosystem/nginx/1.21.1/main/pre/ip2location-description-pak rename to linux/ecosystem/nginx/1.21.3/main/pre/ip2location-description-pak diff --git a/linux/ecosystem/nginx/1.21.1/main/pre/luajit2-description-pak b/linux/ecosystem/nginx/1.21.3/main/pre/luajit2-description-pak similarity index 100% rename from linux/ecosystem/nginx/1.21.1/main/pre/luajit2-description-pak rename to linux/ecosystem/nginx/1.21.3/main/pre/luajit2-description-pak diff --git a/linux/ecosystem/nginx/1.21.1/main/pre/nginx-description-pak b/linux/ecosystem/nginx/1.21.3/main/pre/nginx-description-pak similarity index 100% rename from linux/ecosystem/nginx/1.21.1/main/pre/nginx-description-pak rename to linux/ecosystem/nginx/1.21.3/main/pre/nginx-description-pak diff --git a/linux/ecosystem/nginx/1.21.1/main/pre/ngninx.pre.tar.gz b/linux/ecosystem/nginx/1.21.3/main/pre/ngninx.pre.tar.gz similarity index 100% rename from linux/ecosystem/nginx/1.21.1/main/pre/ngninx.pre.tar.gz rename to linux/ecosystem/nginx/1.21.3/main/pre/ngninx.pre.tar.gz 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.1/php/Dockerfile b/linux/ecosystem/nginx/1.21.3/php/Dockerfile similarity index 100% rename from linux/ecosystem/nginx/1.21.1/php/Dockerfile rename to linux/ecosystem/nginx/1.21.3/php/Dockerfile diff --git a/linux/ecosystem/nginx/1.21.1/php/Makefile b/linux/ecosystem/nginx/1.21.3/php/Makefile similarity index 100% rename from linux/ecosystem/nginx/1.21.1/php/Makefile rename to linux/ecosystem/nginx/1.21.3/php/Makefile diff --git a/linux/ecosystem/nginx/1.21.1/php/README.md b/linux/ecosystem/nginx/1.21.3/php/README.md similarity index 100% rename from linux/ecosystem/nginx/1.21.1/php/README.md rename to linux/ecosystem/nginx/1.21.3/php/README.md diff --git a/linux/ecosystem/nginx/1.21.1/php/docker-compose.yml b/linux/ecosystem/nginx/1.21.3/php/docker-compose.yml similarity index 100% rename from linux/ecosystem/nginx/1.21.1/php/docker-compose.yml rename to linux/ecosystem/nginx/1.21.3/php/docker-compose.yml 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.1/rtmp-hls/Dockerfile b/linux/ecosystem/nginx/1.21.3/rtmp-hls/Dockerfile similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/Dockerfile rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/Dockerfile diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.21.3/rtmp-hls/Makefile similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/Makefile rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/Makefile diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/README.md b/linux/ecosystem/nginx/1.21.3/rtmp-hls/README.md similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/README.md rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/README.md diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx.conf b/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx.conf similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx.conf rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx.conf diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf b/linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx_no-ffmpeg.conf similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx_no-ffmpeg.conf rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx_no-ffmpeg.conf diff --git a/linux/ecosystem/nginx/1.21.1/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 similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/conf/nginx_rtmp_minimal_no-stats.conf diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/docker-compose.yml b/linux/ecosystem/nginx/1.21.3/rtmp-hls/docker-compose.yml similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/docker-compose.yml rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/docker-compose.yml diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/dash.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/dash.html similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/players/dash.html rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/players/dash.html diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/hls.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls.html similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/players/hls.html rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls.html diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/hls_hlsjs.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls_hlsjs.html similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/players/hls_hlsjs.html rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/players/hls_hlsjs.html diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/rtmp.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp.html similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/players/rtmp.html rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp.html diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/players/rtmp_hls.html b/linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp_hls.html similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/players/rtmp_hls.html rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/players/rtmp_hls.html diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.buster.list b/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.buster.list similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.buster.list rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.buster.list diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.sid.list b/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.sid.list similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.sid.list rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.sid.list diff --git a/linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.stretch.list b/linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.stretch.list similarity index 100% rename from linux/ecosystem/nginx/1.21.1/rtmp-hls/sources.list.d/sources.stretch.list rename to linux/ecosystem/nginx/1.21.3/rtmp-hls/sources.list.d/sources.stretch.list diff --git a/linux/ecosystem/nginx/latest/main/.env b/linux/ecosystem/nginx/latest/main/.env index a012fc251..00230635f 100644 --- a/linux/ecosystem/nginx/latest/main/.env +++ b/linux/ecosystem/nginx/latest/main/.env @@ -1,2 +1,2 @@ NGINX_VERSION=latest -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.3.tar.gz diff --git a/linux/ecosystem/nginx/latest/php/.env b/linux/ecosystem/nginx/latest/php/.env index a012fc251..00230635f 100644 --- a/linux/ecosystem/nginx/latest/php/.env +++ b/linux/ecosystem/nginx/latest/php/.env @@ -1,2 +1,2 @@ NGINX_VERSION=latest -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.3.tar.gz diff --git a/linux/ecosystem/nginx/latest/rtmp-hls/.env b/linux/ecosystem/nginx/latest/rtmp-hls/.env index a012fc251..00230635f 100644 --- a/linux/ecosystem/nginx/latest/rtmp-hls/.env +++ b/linux/ecosystem/nginx/latest/rtmp-hls/.env @@ -1,2 +1,2 @@ NGINX_VERSION=latest -NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.1.tar.gz +NGINX_DOWNLOAD_URL=http://nginx.org/download/nginx-1.21.3.tar.gz diff --git a/linux/ecosystem/nginx/links.txt b/linux/ecosystem/nginx/links.txt index 3e5fd14e0..8a524e2ee 100644 --- a/linux/ecosystem/nginx/links.txt +++ b/linux/ecosystem/nginx/links.txt @@ -538,4 +538,4 @@ 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.0.tar.gz \ No newline at end of file +http://nginx.org/download/nginx-1.21.3.tar.gz \ No newline at end of file From f0d1f4ee335c6292d54514f5d9c760ed9642f122 Mon Sep 17 00:00:00 2001 From: Odmin Date: Tue, 21 Sep 2021 22:28:05 +0300 Subject: [PATCH 103/144] nginx compile fixes and updates --- linux/ecosystem/nginx/1.14.2/main/Dockerfile | 16 +++++++++-- .../sources.list.d/sources.buster.list | 28 +++++++++---------- .../rtmp-hls/sources.list.d/sources.sid.list | 24 ++++++++-------- .../sources.list.d/sources.stretch.list | 28 +++++++++---------- linux/ecosystem/nginx/1.15.12/main/Dockerfile | 16 +++++++++-- .../sources.list.d/sources.buster.list | 28 +++++++++---------- .../rtmp-hls/sources.list.d/sources.sid.list | 24 ++++++++-------- .../sources.list.d/sources.stretch.list | 28 +++++++++---------- linux/ecosystem/nginx/1.16.1/main/Dockerfile | 16 +++++++++-- .../sources.list.d/sources.buster.list | 28 +++++++++---------- .../rtmp-hls/sources.list.d/sources.sid.list | 24 ++++++++-------- .../sources.list.d/sources.stretch.list | 28 +++++++++---------- linux/ecosystem/nginx/1.17.10/main/Dockerfile | 16 +++++++++-- .../sources.list.d/sources.buster.list | 28 +++++++++---------- .../rtmp-hls/sources.list.d/sources.sid.list | 24 ++++++++-------- .../sources.list.d/sources.stretch.list | 28 +++++++++---------- linux/ecosystem/nginx/1.18.0/main/Dockerfile | 16 +++++++++-- .../sources.list.d/sources.buster.list | 28 +++++++++---------- .../rtmp-hls/sources.list.d/sources.sid.list | 24 ++++++++-------- .../sources.list.d/sources.stretch.list | 28 +++++++++---------- linux/ecosystem/nginx/1.19.10/main/Dockerfile | 16 +++++++++-- .../sources.list.d/sources.buster.list | 28 +++++++++---------- .../rtmp-hls/sources.list.d/sources.sid.list | 24 ++++++++-------- .../sources.list.d/sources.stretch.list | 28 +++++++++---------- linux/ecosystem/nginx/1.20.1/main/Dockerfile | 16 +++++++++-- .../sources.list.d/sources.buster.list | 28 +++++++++---------- .../rtmp-hls/sources.list.d/sources.sid.list | 24 ++++++++-------- .../sources.list.d/sources.stretch.list | 28 +++++++++---------- linux/ecosystem/nginx/1.21.3/main/Dockerfile | 17 ++++++++--- .../sources.list.d/sources.buster.list | 28 +++++++++---------- .../rtmp-hls/sources.list.d/sources.sid.list | 24 ++++++++-------- .../sources.list.d/sources.stretch.list | 28 +++++++++---------- linux/ecosystem/nginx/latest/main/Dockerfile | 17 +++++++++-- .../sources.list.d/sources.buster.list | 28 +++++++++---------- .../rtmp-hls/sources.list.d/sources.sid.list | 24 ++++++++-------- .../sources.list.d/sources.stretch.list | 28 +++++++++---------- 36 files changed, 478 insertions(+), 388 deletions(-) diff --git a/linux/ecosystem/nginx/1.14.2/main/Dockerfile b/linux/ecosystem/nginx/1.14.2/main/Dockerfile index aef90bcb1..907a090fe 100644 --- a/linux/ecosystem/nginx/1.14.2/main/Dockerfile +++ b/linux/ecosystem/nginx/1.14.2/main/Dockerfile @@ -39,7 +39,19 @@ 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 && \ + 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 && \ @@ -47,7 +59,6 @@ RUN cd ${SRC_DIR} && \ 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 ################################################################## @@ -216,7 +227,6 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ 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 index fd3092816..412c35d1a 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 index 677a95436..465c737af 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +#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://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 +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://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#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 index ff15154c3..617bf9bb6 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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/Dockerfile b/linux/ecosystem/nginx/1.15.12/main/Dockerfile index aef90bcb1..907a090fe 100644 --- a/linux/ecosystem/nginx/1.15.12/main/Dockerfile +++ b/linux/ecosystem/nginx/1.15.12/main/Dockerfile @@ -39,7 +39,19 @@ 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 && \ + 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 && \ @@ -47,7 +59,6 @@ RUN cd ${SRC_DIR} && \ 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 ################################################################## @@ -216,7 +227,6 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ 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 index fd3092816..412c35d1a 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 index 677a95436..465c737af 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +#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://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 +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://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#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 index ff15154c3..617bf9bb6 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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/Dockerfile b/linux/ecosystem/nginx/1.16.1/main/Dockerfile index aef90bcb1..907a090fe 100644 --- a/linux/ecosystem/nginx/1.16.1/main/Dockerfile +++ b/linux/ecosystem/nginx/1.16.1/main/Dockerfile @@ -39,7 +39,19 @@ 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 && \ + 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 && \ @@ -47,7 +59,6 @@ RUN cd ${SRC_DIR} && \ 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 ################################################################## @@ -216,7 +227,6 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ 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 index fd3092816..412c35d1a 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 index 677a95436..465c737af 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +#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://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 +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://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#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 index ff15154c3..617bf9bb6 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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/Dockerfile b/linux/ecosystem/nginx/1.17.10/main/Dockerfile index aef90bcb1..907a090fe 100644 --- a/linux/ecosystem/nginx/1.17.10/main/Dockerfile +++ b/linux/ecosystem/nginx/1.17.10/main/Dockerfile @@ -39,7 +39,19 @@ 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 && \ + 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 && \ @@ -47,7 +59,6 @@ RUN cd ${SRC_DIR} && \ 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 ################################################################## @@ -216,7 +227,6 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ 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 index fd3092816..412c35d1a 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 index 677a95436..465c737af 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +#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://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 +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://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#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 index ff15154c3..617bf9bb6 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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/Dockerfile b/linux/ecosystem/nginx/1.18.0/main/Dockerfile index aef90bcb1..907a090fe 100644 --- a/linux/ecosystem/nginx/1.18.0/main/Dockerfile +++ b/linux/ecosystem/nginx/1.18.0/main/Dockerfile @@ -39,7 +39,19 @@ 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 && \ + 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 && \ @@ -47,7 +59,6 @@ RUN cd ${SRC_DIR} && \ 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 ################################################################## @@ -216,7 +227,6 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ 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 index fd3092816..412c35d1a 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 index 677a95436..465c737af 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +#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://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 +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://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#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 index ff15154c3..617bf9bb6 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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/Dockerfile b/linux/ecosystem/nginx/1.19.10/main/Dockerfile index aef90bcb1..907a090fe 100644 --- a/linux/ecosystem/nginx/1.19.10/main/Dockerfile +++ b/linux/ecosystem/nginx/1.19.10/main/Dockerfile @@ -39,7 +39,19 @@ 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 && \ + 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 && \ @@ -47,7 +59,6 @@ RUN cd ${SRC_DIR} && \ 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 ################################################################## @@ -216,7 +227,6 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ 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 index fd3092816..412c35d1a 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 index 677a95436..465c737af 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +#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://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 +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://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#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 index ff15154c3..617bf9bb6 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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/Dockerfile b/linux/ecosystem/nginx/1.20.1/main/Dockerfile index aef90bcb1..907a090fe 100644 --- a/linux/ecosystem/nginx/1.20.1/main/Dockerfile +++ b/linux/ecosystem/nginx/1.20.1/main/Dockerfile @@ -39,7 +39,19 @@ 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 && \ + 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 && \ @@ -47,7 +59,6 @@ RUN cd ${SRC_DIR} && \ 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 ################################################################## @@ -216,7 +227,6 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ 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 index fd3092816..412c35d1a 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 index 677a95436..465c737af 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +#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://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 +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://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#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 index ff15154c3..617bf9bb6 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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/Dockerfile b/linux/ecosystem/nginx/1.21.3/main/Dockerfile index 7db814ccc..d63287502 100644 --- a/linux/ecosystem/nginx/1.21.3/main/Dockerfile +++ b/linux/ecosystem/nginx/1.21.3/main/Dockerfile @@ -38,8 +38,19 @@ ADD pre/ip2location-description-pak ${PRE_DIR} 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 && \ + 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 && \ @@ -47,7 +58,6 @@ RUN cd ${SRC_DIR} && \ 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 ################################################################## @@ -216,7 +226,6 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ 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 index fd3092816..412c35d1a 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 index 677a95436..465c737af 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +#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://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 +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://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#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 index ff15154c3..617bf9bb6 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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/Dockerfile b/linux/ecosystem/nginx/latest/main/Dockerfile index aef90bcb1..2c3d58167 100644 --- a/linux/ecosystem/nginx/latest/main/Dockerfile +++ b/linux/ecosystem/nginx/latest/main/Dockerfile @@ -39,7 +39,19 @@ 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 && \ + 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 && \ @@ -47,7 +59,7 @@ RUN cd ${SRC_DIR} && \ 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 && \ + 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 ################################################################## @@ -216,7 +228,6 @@ RUN apt-get update && \ 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 -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1 && \ 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 && \ 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 index fd3092816..412c35d1a 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 index 677a95436..465c737af 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +#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://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 +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://ftp.ru.debian.org/debian-multimedia/ sid main non-free -#deb-src http://ftp.ru.debian.org/debian-multimedia/ sid main non-free +#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 index ff15154c3..617bf9bb6 100644 --- 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 @@ -1,19 +1,19 @@ #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 +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://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 +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://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 +#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 From 9ecedb0c3c1c81bdac1d5798301a1ebc20fafda3 Mon Sep 17 00:00:00 2001 From: STAM Date: Fri, 8 Oct 2021 12:44:31 +0300 Subject: [PATCH 104/144] small updates --- linux/ecosystem/atlassian/confluence/latest/Dockerfile | 2 +- linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 | 2 +- linux/ecosystem/php/latest/Dockerfile | 2 ++ linux/ecosystem/php/php7.2/Dockerfile | 2 ++ linux/ecosystem/php/php7.3/Dockerfile | 1 + linux/ecosystem/php/php7.4/Dockerfile | 2 ++ 6 files changed, 9 insertions(+), 2 deletions(-) diff --git a/linux/ecosystem/atlassian/confluence/latest/Dockerfile b/linux/ecosystem/atlassian/confluence/latest/Dockerfile index 3d00cf78d..a0bf14609 100644 --- a/linux/ecosystem/atlassian/confluence/latest/Dockerfile +++ b/linux/ecosystem/atlassian/confluence/latest/Dockerfile @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive ################################################################## # ARGuments ################################################################## -ARG CONFLUENCE_VERSION=7.13.0 +ARG CONFLUENCE_VERSION=7.13.1 ARG DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz ################################################################## diff --git a/linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 b/linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 index 3e897cca5..cd8c3c562 100644 --- a/linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 +++ b/linux/ecosystem/atlassian/confluence/latest/Dockerfile.jdk11 @@ -5,7 +5,7 @@ ARG DEBIAN_FRONTEND=noninteractive ################################################################## # ARGuments ################################################################## -ARG CONFLUENCE_VERSION=7.13.0 +ARG CONFLUENCE_VERSION=7.13.1 ARG DOWNLOAD_URL=https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-${CONFLUENCE_VERSION}.tar.gz ################################################################## diff --git a/linux/ecosystem/php/latest/Dockerfile b/linux/ecosystem/php/latest/Dockerfile index 636ff30ec..f687b4472 100644 --- a/linux/ecosystem/php/latest/Dockerfile +++ b/linux/ecosystem/php/latest/Dockerfile @@ -119,6 +119,7 @@ RUN apt-get update && \ php7.4-imap \ php7.4-pspell \ php7.4-sqlite3 \ + php7.4-pgsql \ php7.4-tidy \ php7.4-xmlrpc \ php7.4-xml \ @@ -139,6 +140,7 @@ RUN apt-get update && \ 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 diff --git a/linux/ecosystem/php/php7.2/Dockerfile b/linux/ecosystem/php/php7.2/Dockerfile index f96d5f752..91d279a62 100644 --- a/linux/ecosystem/php/php7.2/Dockerfile +++ b/linux/ecosystem/php/php7.2/Dockerfile @@ -111,6 +111,7 @@ RUN apt-get update && \ php7.2-pspell \ php7.2-recode \ php7.2-sqlite3 \ + php7.2-pgsql \ php7.2-tidy \ php7.2-xmlrpc \ php7.2-xml \ @@ -133,6 +134,7 @@ RUN apt-get update && \ 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 diff --git a/linux/ecosystem/php/php7.3/Dockerfile b/linux/ecosystem/php/php7.3/Dockerfile index 10d6bf2ff..36dec8493 100644 --- a/linux/ecosystem/php/php7.3/Dockerfile +++ b/linux/ecosystem/php/php7.3/Dockerfile @@ -115,6 +115,7 @@ RUN apt-get update && \ php7.3-pspell \ php7.3-recode \ php7.3-sqlite3 \ + php7.3-pgsql \ php7.3-tidy \ php7.3-xmlrpc \ php7.3-xml \ diff --git a/linux/ecosystem/php/php7.4/Dockerfile b/linux/ecosystem/php/php7.4/Dockerfile index 636ff30ec..f687b4472 100644 --- a/linux/ecosystem/php/php7.4/Dockerfile +++ b/linux/ecosystem/php/php7.4/Dockerfile @@ -119,6 +119,7 @@ RUN apt-get update && \ php7.4-imap \ php7.4-pspell \ php7.4-sqlite3 \ + php7.4-pgsql \ php7.4-tidy \ php7.4-xmlrpc \ php7.4-xml \ @@ -139,6 +140,7 @@ RUN apt-get update && \ 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 From 7c0d3c50c54c2a6bbbdf987f8608d31502135728 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 19 Oct 2021 16:18:01 +0300 Subject: [PATCH 105/144] bump --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 735ec6494..5fe8cbc5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## Changelog ### 2021 +* `october` + * ... * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * fully reworked `teamcity-agent` images. From 6fcc080295da730c63996752d2616ac545df2f59 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Tue, 19 Oct 2021 16:42:53 +0300 Subject: [PATCH 106/144] bump --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fe8cbc5b..a0ce20b10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## Changelog ### 2021 * `october` - * ... + * .... * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * fully reworked `teamcity-agent` images. From 82db27eaa1aeffb642b2a49702a791c51a62e383 Mon Sep 17 00:00:00 2001 From: EpicMorg Date: Tue, 19 Oct 2021 17:35:32 +0300 Subject: [PATCH 107/144] bump --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0ce20b10..5fe8cbc5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## Changelog ### 2021 * `october` - * .... + * ... * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * fully reworked `teamcity-agent` images. From b31916387e6b6a9f6af2fb558a93279e3215dcb8 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 19 Oct 2021 17:48:03 +0300 Subject: [PATCH 108/144] . --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fe8cbc5b..a0ce20b10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## Changelog ### 2021 * `october` - * ... + * .... * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * fully reworked `teamcity-agent` images. From 675168badea964c9db2033b61db4d6f321ec97e4 Mon Sep 17 00:00:00 2001 From: STAM Date: Tue, 19 Oct 2021 17:50:53 +0300 Subject: [PATCH 109/144] Revert "." This reverts commit b31916387e6b6a9f6af2fb558a93279e3215dcb8. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0ce20b10..5fe8cbc5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## Changelog ### 2021 * `october` - * .... + * ... * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * fully reworked `teamcity-agent` images. From cb4ae2603c7ff1ad5a8eb400ea0e3a83270189f3 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Fri, 29 Oct 2021 15:28:15 +0300 Subject: [PATCH 110/144] nginx quic (http3) support --- .gitmodules | 3 + .../ecosystem/epicmorg/devel/main/Dockerfile | 20 +- linux/ecosystem/epicmorg/devel/main/Makefile | 1 + linux/ecosystem/nginx/latest/quic/.env | 2 + linux/ecosystem/nginx/latest/quic/Dockerfile | 26 ++ .../nginx/latest/quic/Dockerfile.experimental | 325 ++++++++++++++++++ linux/ecosystem/nginx/latest/quic/Makefile | 5 + linux/ecosystem/nginx/latest/quic/README.md | 291 ++++++++++++++++ .../nginx/latest/quic/docker-compose.yml | 9 + .../nginx/latest/quic/pre/boringssl-build.sh | 111 ++++++ .../quic/pre/ip2location-description-pak | 1 + .../latest/quic/pre/luajit2-description-pak | 1 + .../latest/quic/pre/nginx-description-pak | 1 + .../nginx/latest/quic/pre/ngninx.pre.tar.gz | Bin 0 -> 9573 bytes 14 files changed, 794 insertions(+), 2 deletions(-) create mode 100644 .gitmodules create mode 100644 linux/ecosystem/nginx/latest/quic/.env create mode 100644 linux/ecosystem/nginx/latest/quic/Dockerfile create mode 100644 linux/ecosystem/nginx/latest/quic/Dockerfile.experimental create mode 100644 linux/ecosystem/nginx/latest/quic/Makefile create mode 100644 linux/ecosystem/nginx/latest/quic/README.md create mode 100644 linux/ecosystem/nginx/latest/quic/docker-compose.yml create mode 100755 linux/ecosystem/nginx/latest/quic/pre/boringssl-build.sh create mode 100644 linux/ecosystem/nginx/latest/quic/pre/ip2location-description-pak create mode 100644 linux/ecosystem/nginx/latest/quic/pre/luajit2-description-pak create mode 100644 linux/ecosystem/nginx/latest/quic/pre/nginx-description-pak create mode 100644 linux/ecosystem/nginx/latest/quic/pre/ngninx.pre.tar.gz 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/linux/ecosystem/epicmorg/devel/main/Dockerfile b/linux/ecosystem/epicmorg/devel/main/Dockerfile index 386a6601f..3bcc12471 100644 --- a/linux/ecosystem/epicmorg/devel/main/Dockerfile +++ b/linux/ecosystem/epicmorg/devel/main/Dockerfile @@ -9,6 +9,9 @@ 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 @@ -30,6 +33,9 @@ RUN apt-get update && \ build-essential \ autoconf-archive \ gnu-standards \ + cmake \ + libunwind-dev \ + golang \ at \ autopkgtest \ gcc-multilib \ @@ -40,6 +46,7 @@ RUN apt-get update && \ libegl1-mesa-dev \ libgles2-mesa-dev \ libgbm-dev \ + uuid-dev \ nvidia-cg-toolkit \ nvidia-cg-dev \ libavcodec-dev \ @@ -47,7 +54,6 @@ RUN apt-get update && \ libsdl-image1.2-dev \ libxml2-dev yasm \ devscripts \ - autoconf \ automake \ libtool \ autotools-dev \ @@ -84,6 +90,15 @@ RUN apt-get update && \ 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 @@ -97,4 +112,5 @@ 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 /var/cache/apt/archives/*.deb && \ + rm -rfv /tmp/* diff --git a/linux/ecosystem/epicmorg/devel/main/Makefile b/linux/ecosystem/epicmorg/devel/main/Makefile index 82c5a2de6..39e5c5f1b 100644 --- a/linux/ecosystem/epicmorg/devel/main/Makefile +++ b/linux/ecosystem/epicmorg/devel/main/Makefile @@ -3,3 +3,4 @@ all: app app: docker-compose build --compress docker-compose push + 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..82c5a2de6 --- /dev/null +++ b/linux/ecosystem/nginx/latest/quic/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push 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 0000000000000000000000000000000000000000..bf9c2735172faf460d34cb157f13291f42cdef88 GIT binary patch literal 9573 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 Date: Fri, 29 Oct 2021 15:38:05 +0300 Subject: [PATCH 111/144] cleanup --- .gitmodules | 3 --- linux/advanced/redash/Makefile | 6 ++++++ 2 files changed, 6 insertions(+), 3 deletions(-) delete mode 100644 .gitmodules create mode 100644 linux/advanced/redash/Makefile diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index b544ba297..000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "linux/advanced/redash/redash-repo"] - path = linux/advanced/redash/redash-repo - url = git@github.com:getredash/redash.git diff --git a/linux/advanced/redash/Makefile b/linux/advanced/redash/Makefile new file mode 100644 index 000000000..a4e0946b0 --- /dev/null +++ b/linux/advanced/redash/Makefile @@ -0,0 +1,6 @@ +all: app + +app: + git submodule init + git submodule update --init --recursive + git submodule sync --recursive From 55eb50be15229766ac89642520b64eb4896b87c5 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Mon, 1 Nov 2021 18:05:30 +0300 Subject: [PATCH 112/144] redash init --- .gitmodules | 3 + linux/advanced/redash/Dockerfile | 105 +++++++++++++++++++++++ linux/advanced/redash/README.md | 98 +++++++++++++++++++++ linux/advanced/redash/docker-compose.yml | 65 ++++++++++++++ linux/advanced/redash/redash-repo | 1 + 5 files changed, 272 insertions(+) create mode 100644 .gitmodules create mode 100644 linux/advanced/redash/Dockerfile create mode 100644 linux/advanced/redash/README.md create mode 100644 linux/advanced/redash/docker-compose.yml create mode 160000 linux/advanced/redash/redash-repo 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/linux/advanced/redash/Dockerfile b/linux/advanced/redash/Dockerfile new file mode 100644 index 000000000..cf1ae9a38 --- /dev/null +++ b/linux/advanced/redash/Dockerfile @@ -0,0 +1,105 @@ +FROM node:14.17 as frontend-builder + +RUN npm install --global --force yarn@1.22.10 + +# Controls whether to build the frontend assets +ARG skip_frontend_build + +ENV CYPRESS_INSTALL_BINARY=0 +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 + +RUN useradd -m -d /frontend redash +USER redash + +WORKDIR /frontend +COPY --chown=redash package.json yarn.lock .yarnrc /frontend/ +COPY --chown=redash viz-lib /frontend/viz-lib + +# Controls whether to instrument code for coverage information +ARG code_coverage +ENV BABEL_ENV=${code_coverage:+test} + +RUN if [ "x$skip_frontend_build" = "x" ] ; then yarn --frozen-lockfile --network-concurrency 1; fi + +COPY --chown=redash client /frontend/client +COPY --chown=redash webpack.config.js /frontend/ +RUN if [ "x$skip_frontend_build" = "x" ] ; then yarn build; else mkdir -p /frontend/client/dist && touch /frontend/client/dist/multi_org.html && touch /frontend/client/dist/index.html; fi + +FROM python:3.7-slim-buster + +EXPOSE 5000 + +# Controls whether to install extra dependencies needed for all data sources. +ARG skip_ds_deps +# Controls whether to install dev dependencies. +ARG skip_dev_deps + +RUN useradd --create-home redash + +# Ubuntu packages +RUN apt-get update && \ + apt-get install -y \ + curl \ + gnupg \ + build-essential \ + pwgen \ + libffi-dev \ + sudo \ + git-core \ + wget \ + # Postgres client + libpq-dev \ + # ODBC support: + g++ unixodbc-dev \ + # for SAML + xmlsec1 \ + # Additional packages required for data sources: + libssl-dev \ + default-libmysqlclient-dev \ + freetds-dev \ + libsasl2-dev \ + unzip \ + libsasl2-modules-gssapi-mit && \ + # MSSQL ODBC Driver: + curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \ + curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list && \ + apt-get update && \ + ACCEPT_EULA=Y apt-get install -y msodbcsql17 && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +ARG databricks_odbc_driver_url=https://databricks.com/wp-content/uploads/2.6.10.1010-2/SimbaSparkODBC-2.6.10.1010-2-Debian-64bit.zip +RUN wget --quiet $databricks_odbc_driver_url -O /tmp/simba_odbc.zip \ + && chmod 600 /tmp/simba_odbc.zip \ + && unzip /tmp/simba_odbc.zip -d /tmp/ \ + && dpkg -i /tmp/SimbaSparkODBC-*/*.deb \ + && echo "[Simba]\nDriver = /opt/simba/spark/lib/64/libsparkodbc_sb64.so" >> /etc/odbcinst.ini \ + && rm /tmp/simba_odbc.zip \ + && rm -rf /tmp/SimbaSparkODBC* + +WORKDIR /app + +# Disable PIP Cache and Version Check +ENV PIP_DISABLE_PIP_VERSION_CHECK=1 +ENV PIP_NO_CACHE_DIR=1 + +# rollback pip version to avoid legacy resolver problem +RUN pip install pip==20.2.4; + +# We first copy only the requirements file, to avoid rebuilding on every file change. +COPY requirements_all_ds.txt ./ +RUN if [ "x$skip_ds_deps" = "x" ] ; then pip install -r requirements_all_ds.txt ; else echo "Skipping pip install -r requirements_all_ds.txt" ; fi + +COPY requirements_bundles.txt requirements_dev.txt ./ +RUN if [ "x$skip_dev_deps" = "x" ] ; then pip install -r requirements_dev.txt ; fi + +COPY requirements.txt ./ +RUN pip install -r requirements.txt + +COPY . /app +COPY --from=frontend-builder /frontend/client/dist /app/client/dist +RUN chown -R redash /app +USER redash + +ENTRYPOINT ["/app/bin/docker-entrypoint"] +CMD ["server"] 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.yml b/linux/advanced/redash/docker-compose.yml new file mode 100644 index 000000000..82bcd245f --- /dev/null +++ b/linux/advanced/redash/docker-compose.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/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 From 53acf2061363be6768c59c7219fcec33fb0ef2c2 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Mon, 1 Nov 2021 18:29:55 +0300 Subject: [PATCH 113/144] redash edit --- linux/advanced/redash/Dockerfile | 6 +- linux/advanced/redash/Makefile | 24 +++++++ .../redash/docker-compose.example.yml | 65 +++++++++++++++++ linux/advanced/redash/docker-compose.yml | 69 ++----------------- 4 files changed, 97 insertions(+), 67 deletions(-) create mode 100644 linux/advanced/redash/docker-compose.example.yml diff --git a/linux/advanced/redash/Dockerfile b/linux/advanced/redash/Dockerfile index cf1ae9a38..91b31195f 100644 --- a/linux/advanced/redash/Dockerfile +++ b/linux/advanced/redash/Dockerfile @@ -87,13 +87,13 @@ ENV PIP_NO_CACHE_DIR=1 RUN pip install pip==20.2.4; # We first copy only the requirements file, to avoid rebuilding on every file change. -COPY requirements_all_ds.txt ./ +COPY ./redash-repo/requirements_all_ds.txt ./ RUN if [ "x$skip_ds_deps" = "x" ] ; then pip install -r requirements_all_ds.txt ; else echo "Skipping pip install -r requirements_all_ds.txt" ; fi -COPY requirements_bundles.txt requirements_dev.txt ./ +COPY ./redash-repo/requirements_bundles.txt ./redash-repo/requirements_dev.txt ./ RUN if [ "x$skip_dev_deps" = "x" ] ; then pip install -r requirements_dev.txt ; fi -COPY requirements.txt ./ +COPY ./redash-repo/requirements.txt ./ RUN pip install -r requirements.txt COPY . /app diff --git a/linux/advanced/redash/Makefile b/linux/advanced/redash/Makefile index a4e0946b0..5e2a7a25a 100644 --- a/linux/advanced/redash/Makefile +++ b/linux/advanced/redash/Makefile @@ -1,6 +1,30 @@ all: app app: + make sync + make patch + make build + make push + 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 + +push: + docker-compose push + +clean: + 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/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 index 82bcd245f..5a89409da 100644 --- a/linux/advanced/redash/docker-compose.yml +++ b/linux/advanced/redash/docker-compose.yml @@ -1,65 +1,6 @@ -# 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" +version: '3.9' 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 + app: + image: "epicmorg/redash:latest" + build: + context: . From 2f37e700b38f40e1604d168af34c75af1316c8d0 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Mon, 1 Nov 2021 18:55:05 +0300 Subject: [PATCH 114/144] redash release --- linux/advanced/redash/Dockerfile => Dockerfile | 10 +++++----- linux/advanced/redash/Makefile | 2 +- linux/advanced/redash/docker-compose.yml | 2 +- linux/advanced/redash/redash-repo | 1 - 4 files changed, 7 insertions(+), 8 deletions(-) rename linux/advanced/redash/Dockerfile => Dockerfile (90%) delete mode 160000 linux/advanced/redash/redash-repo diff --git a/linux/advanced/redash/Dockerfile b/Dockerfile similarity index 90% rename from linux/advanced/redash/Dockerfile rename to Dockerfile index 91b31195f..54e95f15c 100644 --- a/linux/advanced/redash/Dockerfile +++ b/Dockerfile @@ -12,8 +12,8 @@ RUN useradd -m -d /frontend redash USER redash WORKDIR /frontend -COPY --chown=redash package.json yarn.lock .yarnrc /frontend/ -COPY --chown=redash viz-lib /frontend/viz-lib +COPY --chown=redash ./redash-repo/package.json ./redash-repo/yarn.lock ./redash-repo/.yarnrc /frontend/ +COPY --chown=redash ./redash-repo/viz-lib /frontend/viz-lib # Controls whether to instrument code for coverage information ARG code_coverage @@ -21,8 +21,8 @@ ENV BABEL_ENV=${code_coverage:+test} RUN if [ "x$skip_frontend_build" = "x" ] ; then yarn --frozen-lockfile --network-concurrency 1; fi -COPY --chown=redash client /frontend/client -COPY --chown=redash webpack.config.js /frontend/ +COPY --chown=redash ./redash-repo/client /frontend/client +COPY --chown=redash ./redash-repo/webpack.config.js /frontend/ RUN if [ "x$skip_frontend_build" = "x" ] ; then yarn build; else mkdir -p /frontend/client/dist && touch /frontend/client/dist/multi_org.html && touch /frontend/client/dist/index.html; fi FROM python:3.7-slim-buster @@ -96,7 +96,7 @@ RUN if [ "x$skip_dev_deps" = "x" ] ; then pip install -r requirements_dev.txt ; COPY ./redash-repo/requirements.txt ./ RUN pip install -r requirements.txt -COPY . /app +COPY ./redash-repo/ /app COPY --from=frontend-builder /frontend/client/dist /app/client/dist RUN chown -R redash /app USER redash diff --git a/linux/advanced/redash/Makefile b/linux/advanced/redash/Makefile index 5e2a7a25a..180c376ac 100644 --- a/linux/advanced/redash/Makefile +++ b/linux/advanced/redash/Makefile @@ -8,7 +8,6 @@ app: make clean sync: - rm -rfv redash-repo git submodule init git submodule update --init --recursive git submodule sync --recursive @@ -23,6 +22,7 @@ push: docker-compose push clean: + rm -rfv redash-repo docker container prune -f docker image prune -f docker network prune -f diff --git a/linux/advanced/redash/docker-compose.yml b/linux/advanced/redash/docker-compose.yml index 5a89409da..814119cd5 100644 --- a/linux/advanced/redash/docker-compose.yml +++ b/linux/advanced/redash/docker-compose.yml @@ -3,4 +3,4 @@ services: app: image: "epicmorg/redash:latest" build: - context: . + context: ./redash-repo diff --git a/linux/advanced/redash/redash-repo b/linux/advanced/redash/redash-repo deleted file mode 160000 index 2e67227f1..000000000 --- a/linux/advanced/redash/redash-repo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2e67227f1bb6068c3f23bc044ad76ef7d4bccdc7 From f6d8490cbd653e2219022b383c284e71f37338cc Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Mon, 1 Nov 2021 18:56:28 +0300 Subject: [PATCH 115/144] redash release --- CHANGELOG.md | 5 ++- Dockerfile | 105 --------------------------------------------------- 2 files changed, 3 insertions(+), 107 deletions(-) delete mode 100644 Dockerfile diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fe8cbc5b..c4dc16994 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ ## Changelog ### 2021 -* `october` - * ... +* `october-november` + * added `nginx:quic` image. UNSTABLE. + * added `redash:latest` image in to `advanced` pack. * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * fully reworked `teamcity-agent` images. diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 54e95f15c..000000000 --- a/Dockerfile +++ /dev/null @@ -1,105 +0,0 @@ -FROM node:14.17 as frontend-builder - -RUN npm install --global --force yarn@1.22.10 - -# Controls whether to build the frontend assets -ARG skip_frontend_build - -ENV CYPRESS_INSTALL_BINARY=0 -ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 - -RUN useradd -m -d /frontend redash -USER redash - -WORKDIR /frontend -COPY --chown=redash ./redash-repo/package.json ./redash-repo/yarn.lock ./redash-repo/.yarnrc /frontend/ -COPY --chown=redash ./redash-repo/viz-lib /frontend/viz-lib - -# Controls whether to instrument code for coverage information -ARG code_coverage -ENV BABEL_ENV=${code_coverage:+test} - -RUN if [ "x$skip_frontend_build" = "x" ] ; then yarn --frozen-lockfile --network-concurrency 1; fi - -COPY --chown=redash ./redash-repo/client /frontend/client -COPY --chown=redash ./redash-repo/webpack.config.js /frontend/ -RUN if [ "x$skip_frontend_build" = "x" ] ; then yarn build; else mkdir -p /frontend/client/dist && touch /frontend/client/dist/multi_org.html && touch /frontend/client/dist/index.html; fi - -FROM python:3.7-slim-buster - -EXPOSE 5000 - -# Controls whether to install extra dependencies needed for all data sources. -ARG skip_ds_deps -# Controls whether to install dev dependencies. -ARG skip_dev_deps - -RUN useradd --create-home redash - -# Ubuntu packages -RUN apt-get update && \ - apt-get install -y \ - curl \ - gnupg \ - build-essential \ - pwgen \ - libffi-dev \ - sudo \ - git-core \ - wget \ - # Postgres client - libpq-dev \ - # ODBC support: - g++ unixodbc-dev \ - # for SAML - xmlsec1 \ - # Additional packages required for data sources: - libssl-dev \ - default-libmysqlclient-dev \ - freetds-dev \ - libsasl2-dev \ - unzip \ - libsasl2-modules-gssapi-mit && \ - # MSSQL ODBC Driver: - curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \ - curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list && \ - apt-get update && \ - ACCEPT_EULA=Y apt-get install -y msodbcsql17 && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -ARG databricks_odbc_driver_url=https://databricks.com/wp-content/uploads/2.6.10.1010-2/SimbaSparkODBC-2.6.10.1010-2-Debian-64bit.zip -RUN wget --quiet $databricks_odbc_driver_url -O /tmp/simba_odbc.zip \ - && chmod 600 /tmp/simba_odbc.zip \ - && unzip /tmp/simba_odbc.zip -d /tmp/ \ - && dpkg -i /tmp/SimbaSparkODBC-*/*.deb \ - && echo "[Simba]\nDriver = /opt/simba/spark/lib/64/libsparkodbc_sb64.so" >> /etc/odbcinst.ini \ - && rm /tmp/simba_odbc.zip \ - && rm -rf /tmp/SimbaSparkODBC* - -WORKDIR /app - -# Disable PIP Cache and Version Check -ENV PIP_DISABLE_PIP_VERSION_CHECK=1 -ENV PIP_NO_CACHE_DIR=1 - -# rollback pip version to avoid legacy resolver problem -RUN pip install pip==20.2.4; - -# We first copy only the requirements file, to avoid rebuilding on every file change. -COPY ./redash-repo/requirements_all_ds.txt ./ -RUN if [ "x$skip_ds_deps" = "x" ] ; then pip install -r requirements_all_ds.txt ; else echo "Skipping pip install -r requirements_all_ds.txt" ; fi - -COPY ./redash-repo/requirements_bundles.txt ./redash-repo/requirements_dev.txt ./ -RUN if [ "x$skip_dev_deps" = "x" ] ; then pip install -r requirements_dev.txt ; fi - -COPY ./redash-repo/requirements.txt ./ -RUN pip install -r requirements.txt - -COPY ./redash-repo/ /app -COPY --from=frontend-builder /frontend/client/dist /app/client/dist -RUN chown -R redash /app -USER redash - -ENTRYPOINT ["/app/bin/docker-entrypoint"] -CMD ["server"] From bbc6bc5f3d35067217cc1b114b7aff0b1428e1fc Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Mon, 1 Nov 2021 19:00:02 +0300 Subject: [PATCH 116/144] redash release --- bin/make-all-epicmorg-based.sh | 1 + bin/make-all-third-party.sh | 4 ++-- linux/advanced/mattermost/latest/Dockerfile | 16 ---------------- linux/advanced/mattermost/latest/Makefile | 5 ----- .../mattermost/latest/docker-compose.yml | 6 ------ linux/advanced/mattermost/latest/edit.py | 13 ------------- 6 files changed, 3 insertions(+), 42 deletions(-) delete mode 100644 linux/advanced/mattermost/latest/Dockerfile delete mode 100644 linux/advanced/mattermost/latest/Makefile delete mode 100644 linux/advanced/mattermost/latest/docker-compose.yml delete mode 100755 linux/advanced/mattermost/latest/edit.py diff --git a/bin/make-all-epicmorg-based.sh b/bin/make-all-epicmorg-based.sh index 063ee7d42..659e5065d 100755 --- a/bin/make-all-epicmorg-based.sh +++ b/bin/make-all-epicmorg-based.sh @@ -75,5 +75,6 @@ cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/steam-sdk && pwd && make cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/main && pwd && make cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/php && pwd && make cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/rtmp-hls && pwd && make +cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/quic && pwd && make exit 0 diff --git a/bin/make-all-third-party.sh b/bin/make-all-third-party.sh index 5f2728816..cfad59eff 100755 --- a/bin/make-all-third-party.sh +++ b/bin/make-all-third-party.sh @@ -10,10 +10,10 @@ cd ${SCRIPTPATH}/../linux/advanced/zabbix/web && pwd && make exit 1 -cd ${SCRIPTPATH}/../linux/advanced/mattermost/latest && pwd && make +cd ${SCRIPTPATH}/../linux/advanced/mattermost && pwd && make cd ${SCRIPTPATH}/../linux/advanced/nextcloud/latest && pwd && make cd ${SCRIPTPATH}/../linux/advanced/teamcity/server && pwd && make - +cd ${SCRIPTPATH}/../linux/advanced/redash && pwd && make cd ${SCRIPTPATH}/../linux/advanced/nextcloud/14 && pwd && make cd ${SCRIPTPATH}/../linux/advanced/nextcloud/15 && pwd && make diff --git a/linux/advanced/mattermost/latest/Dockerfile b/linux/advanced/mattermost/latest/Dockerfile deleted file mode 100644 index e63f2b207..000000000 --- a/linux/advanced/mattermost/latest/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM mattermost/mattermost-enterprise-edition as bootstrap -RUN cd ./bin && \ - ls -las - -FROM python:2.7-buster as edit -COPY edit.py /tmp/edit.py -COPY --from=bootstrap /mattermost/bin/mattermost /tmp/mattermost -RUN cd /tmp && \ - chmod +x ./edit.py && \ - ./edit.py - -FROM mattermost/mattermost-enterprise-edition -RUN rm -rfv /mattermost/bin/mattermost -COPY --from=edit /tmp/mattermost /mattermost/bin/ -RUN cd ./bin && \ - ls -las diff --git a/linux/advanced/mattermost/latest/Makefile b/linux/advanced/mattermost/latest/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/advanced/mattermost/latest/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/advanced/mattermost/latest/docker-compose.yml b/linux/advanced/mattermost/latest/docker-compose.yml deleted file mode 100644 index d778bcbd9..000000000 --- a/linux/advanced/mattermost/latest/docker-compose.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: '3.9' -services: - app: - image: "epicmorg/mattermost-enterprise-edition:latest" - build: - context: . diff --git a/linux/advanced/mattermost/latest/edit.py b/linux/advanced/mattermost/latest/edit.py deleted file mode 100755 index 64e9acc7d..000000000 --- a/linux/advanced/mattermost/latest/edit.py +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/python2 -import os -fp = open(os.path.join(os.path.dirname(__file__), "mattermost"), "r+b") -print("Try before buy (c)") -try: - pos = fp.read().find("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyZmShlU8Z8HdG0IWSZ8r\ntSyzyxrXkJjsFUf0Ke7bm/TLtIggRdqOcUF3XEWqQk5RGD5vuq7Rlg1zZqMEBk8N\nEZeRhkxyaZW8pLjxwuBUOnXfJew31+gsTNdKZzRjrvPumKr3EtkleuoxNdoatu4E\nHrKmR/4Yi71EqAvkhk7ZjQFuF0osSWJMEEGGCSUYQnTEqUzcZSh1BhVpkIkeu8Kk\n1wCtptODixvEujgqVe+SrE3UlZjBmPjC/CL+3cYmufpSNgcEJm2mwsdaXp2OPpfn\na0v85XL6i9ote2P+fLZ3wX9EoioHzgdgB7arOxY50QRJO7OyCqpKFKv6lRWTXuSt\nhwIDAQAB") - fp.seek(pos) - fp.write("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmCvX08GJRrbqYZbJtGXj\nXYmoRva8Yvk43uspBiNQoFYp0N8mWfmDhCqUzW7i9GZKDlEgn2IYoL2GxiRpSJaP\nirK8FGwD+o0efzhTHeGWOvD4e0c8gQZbpe85p17vha2i2xZiWQ4UBlq7jUFcuy6F\nfcgUK+fVI8+IvvjtkIZRqRLLlXCRnpuEWq/8vJF7yHql2jxiGUdXkFkZsgPgXizv\nmY0op5ui6n/f7ljVIIdad10OLNsW/xxk6VxirAIyuDZK9GSRGjjvDhi/yNcC0yJe\njYTCeDoD+GVh3twk+RyFo9S1AG7kKWtHTNu3MLh9/XnRJdpgrlAE7Z4+VfHrsbXp\ntwIDAQAB") - print("OK") -except: - print("Nothing to do") -finally: - fp.close() From caf878f0eb34e9110ce4daabba03bd0d5806fde0 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Mon, 1 Nov 2021 19:01:24 +0300 Subject: [PATCH 117/144] mattermost moved --- linux/advanced/mattermost/Dockerfile | 16 ++++++++++++++++ linux/advanced/mattermost/Makefile | 5 +++++ linux/advanced/mattermost/docker-compose.yml | 6 ++++++ linux/advanced/mattermost/edit.py | 13 +++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 linux/advanced/mattermost/Dockerfile create mode 100644 linux/advanced/mattermost/Makefile create mode 100644 linux/advanced/mattermost/docker-compose.yml create mode 100755 linux/advanced/mattermost/edit.py diff --git a/linux/advanced/mattermost/Dockerfile b/linux/advanced/mattermost/Dockerfile new file mode 100644 index 000000000..e63f2b207 --- /dev/null +++ b/linux/advanced/mattermost/Dockerfile @@ -0,0 +1,16 @@ +FROM mattermost/mattermost-enterprise-edition as bootstrap +RUN cd ./bin && \ + ls -las + +FROM python:2.7-buster as edit +COPY edit.py /tmp/edit.py +COPY --from=bootstrap /mattermost/bin/mattermost /tmp/mattermost +RUN cd /tmp && \ + chmod +x ./edit.py && \ + ./edit.py + +FROM mattermost/mattermost-enterprise-edition +RUN rm -rfv /mattermost/bin/mattermost +COPY --from=edit /tmp/mattermost /mattermost/bin/ +RUN cd ./bin && \ + ls -las diff --git a/linux/advanced/mattermost/Makefile b/linux/advanced/mattermost/Makefile new file mode 100644 index 000000000..82c5a2de6 --- /dev/null +++ b/linux/advanced/mattermost/Makefile @@ -0,0 +1,5 @@ +all: app + +app: + docker-compose build --compress + docker-compose push 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/advanced/mattermost/edit.py b/linux/advanced/mattermost/edit.py new file mode 100755 index 000000000..64e9acc7d --- /dev/null +++ b/linux/advanced/mattermost/edit.py @@ -0,0 +1,13 @@ +#!/usr/bin/python2 +import os +fp = open(os.path.join(os.path.dirname(__file__), "mattermost"), "r+b") +print("Try before buy (c)") +try: + pos = fp.read().find("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyZmShlU8Z8HdG0IWSZ8r\ntSyzyxrXkJjsFUf0Ke7bm/TLtIggRdqOcUF3XEWqQk5RGD5vuq7Rlg1zZqMEBk8N\nEZeRhkxyaZW8pLjxwuBUOnXfJew31+gsTNdKZzRjrvPumKr3EtkleuoxNdoatu4E\nHrKmR/4Yi71EqAvkhk7ZjQFuF0osSWJMEEGGCSUYQnTEqUzcZSh1BhVpkIkeu8Kk\n1wCtptODixvEujgqVe+SrE3UlZjBmPjC/CL+3cYmufpSNgcEJm2mwsdaXp2OPpfn\na0v85XL6i9ote2P+fLZ3wX9EoioHzgdgB7arOxY50QRJO7OyCqpKFKv6lRWTXuSt\nhwIDAQAB") + fp.seek(pos) + fp.write("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmCvX08GJRrbqYZbJtGXj\nXYmoRva8Yvk43uspBiNQoFYp0N8mWfmDhCqUzW7i9GZKDlEgn2IYoL2GxiRpSJaP\nirK8FGwD+o0efzhTHeGWOvD4e0c8gQZbpe85p17vha2i2xZiWQ4UBlq7jUFcuy6F\nfcgUK+fVI8+IvvjtkIZRqRLLlXCRnpuEWq/8vJF7yHql2jxiGUdXkFkZsgPgXizv\nmY0op5ui6n/f7ljVIIdad10OLNsW/xxk6VxirAIyuDZK9GSRGjjvDhi/yNcC0yJe\njYTCeDoD+GVh3twk+RyFo9S1AG7kKWtHTNu3MLh9/XnRJdpgrlAE7Z4+VfHrsbXp\ntwIDAQAB") + print("OK") +except: + print("Nothing to do") +finally: + fp.close() From 028172009fb61e4c64f26ae6b51d41777b9fd710 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Mon, 1 Nov 2021 19:09:36 +0300 Subject: [PATCH 118/144] git summodule --- linux/advanced/redash/Makefile | 1 + linux/advanced/redash/redash-repo | 1 + 2 files changed, 2 insertions(+) create mode 160000 linux/advanced/redash/redash-repo diff --git a/linux/advanced/redash/Makefile b/linux/advanced/redash/Makefile index 180c376ac..eeee9229e 100644 --- a/linux/advanced/redash/Makefile +++ b/linux/advanced/redash/Makefile @@ -8,6 +8,7 @@ app: make clean sync: + rm -rfv redash-repo git submodule init git submodule update --init --recursive git submodule sync --recursive 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 From fb6350ad6dc38cfd5ea40348f23ebcf88def084c Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Tue, 2 Nov 2021 03:34:02 +0300 Subject: [PATCH 119/144] migrated to Makefile for localbuilds --- Makefile | 153 +++++++++++++++++++++++++++++++++ bin/chmod.sh | 4 - bin/docker-clean.sh | 6 -- bin/docker-compose-update.sh | 7 +- bin/make-all-epicmorg-based.sh | 80 ----------------- bin/make-all-third-party.sh | 28 ------ bin/make-all.sh | 19 ---- linux/advanced/redash/Makefile | 2 +- 8 files changed, 159 insertions(+), 140 deletions(-) create mode 100644 Makefile delete mode 100755 bin/chmod.sh delete mode 100755 bin/docker-clean.sh delete mode 100755 bin/make-all-epicmorg-based.sh delete mode 100755 bin/make-all-third-party.sh delete mode 100755 bin/make-all.sh diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..f73020fa8 --- /dev/null +++ b/Makefile @@ -0,0 +1,153 @@ +VERSION = "2021.11.01" + +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/latest && pwd && make + cd `pwd`/linux/advanced/teamcity/server && pwd && make + cd `pwd`/linux/advanced/redash && pwd && make + + cd `pwd`/linux/advanced/nextcloud/14 && pwd && make + cd `pwd`/linux/advanced/nextcloud/15 && pwd && make + cd `pwd`/linux/advanced/nextcloud/16 && pwd && make + cd `pwd`/linux/advanced/nextcloud/17 && pwd && make + cd `pwd`/linux/advanced/nextcloud/18 && pwd && make + cd `pwd`/linux/advanced/nextcloud/19 && pwd && make + cd `pwd`/linux/advanced/nextcloud/20 && pwd && make + cd `pwd`/linux/advanced/nextcloud/21 && pwd && make + cd `pwd`/linux/advanced/nextcloud/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/latest && 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/latest && 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 \ No newline at end of file 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-clean.sh b/bin/docker-clean.sh deleted file mode 100755 index f31396591..000000000 --- a/bin/docker-clean.sh +++ /dev/null @@ -1,6 +0,0 @@ -docker container prune -f -docker image prune -f -docker network prune -f -docker volume prune -f -docker system prune -af -exit 0 \ No newline at end of file diff --git a/bin/docker-compose-update.sh b/bin/docker-compose-update.sh index 1ead8aefa..d964f0e12 100755 --- a/bin/docker-compose-update.sh +++ b/bin/docker-compose-update.sh @@ -1,2 +1,5 @@ -curl -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 -exit 0 \ No newline at end of file +#!/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 \ No newline at end of file diff --git a/bin/make-all-epicmorg-based.sh b/bin/make-all-epicmorg-based.sh deleted file mode 100755 index 659e5065d..000000000 --- a/bin/make-all-epicmorg-based.sh +++ /dev/null @@ -1,80 +0,0 @@ -export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - -clear - -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/main && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk6 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk7 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk8 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk11 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/prod/jdk16 && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/main && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk6 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk7 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk8 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk11 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/edge/jdk16 && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/main && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk6 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk7 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk8 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk11 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/epicmorg/devel/jdk16 && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/php/latest && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/php/php7.2 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/php/php7.3 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/php/php7.4 && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/apache2/latest && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/apache2/php7.2 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/apache2/php7.3 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/apache2/php7.4 && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/testrail/latest && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/latest && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/8.2 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/8.3 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/8.4 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.0 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.1 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.2 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.3 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.4 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.5 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/9.6 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/10 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/11 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/12 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/13 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/postgres/14 && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/qbittorrent/latest && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/qbittorrent/stable && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/vk2discord/latest && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/latest && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/amxx-sdk && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/android-sdk && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/atlassian-sdk && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/dotnet-sdk && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/node12 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/node14 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/node15 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/node16 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/php7.2 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/php7.3 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/php7.4 && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/teamcity/agent/steam-sdk && pwd && make - -cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/main && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/php && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/rtmp-hls && pwd && make -cd ${SCRIPTPATH}/../linux/ecosystem/nginx/latest/quic && pwd && make - -exit 0 diff --git a/bin/make-all-third-party.sh b/bin/make-all-third-party.sh deleted file mode 100755 index cfad59eff..000000000 --- a/bin/make-all-third-party.sh +++ /dev/null @@ -1,28 +0,0 @@ -export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - -clear - -cd ${SCRIPTPATH}/../linux/advanced/zabbix/agent && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/zabbix/java-gateway && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/zabbix/proxy && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/zabbix/server && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/zabbix/web && pwd && make - -exit 1 - -cd ${SCRIPTPATH}/../linux/advanced/mattermost && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/latest && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/teamcity/server && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/redash && pwd && make - -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/14 && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/15 && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/16 && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/17 && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/18 && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/19 && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/20 && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/21 && pwd && make -cd ${SCRIPTPATH}/../linux/advanced/nextcloud/22 && pwd && make - -exit 0 diff --git a/bin/make-all.sh b/bin/make-all.sh deleted file mode 100755 index 9f6f12bc6..000000000 --- a/bin/make-all.sh +++ /dev/null @@ -1,19 +0,0 @@ -export SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - -clear -pause 3 - -echo "=======================================" -echo "===== Building third-party images =====" -echo "=======================================" -${SCRIPTPATH}/make-all-third-party.sh - -clear -pause 3 - -echo "=======================================" -echo "===== Building EpicMorg images =====" -echo "=======================================" -${SCRIPTPATH}/make-all-epicmorg-based.sh - -exit 0 diff --git a/linux/advanced/redash/Makefile b/linux/advanced/redash/Makefile index eeee9229e..b34e373de 100644 --- a/linux/advanced/redash/Makefile +++ b/linux/advanced/redash/Makefile @@ -17,7 +17,7 @@ patch: sed -i -e 's/# ldap3==2.2.4/ldap3==2.2.4/g' ./redash-repo/requirements.txt build: - docker-compose build --compress + docker-compose build --compress --parallel push: docker-compose push From a721cbc3ceef3a6d0a6db76e2d6fe73876b79887 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Tue, 2 Nov 2021 03:55:32 +0300 Subject: [PATCH 120/144] Makefile improvements --- linux/advanced/mattermost/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/14/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/15/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/16/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/17/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/18/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/19/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/20/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/21/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/22/Makefile | 16 +++++++++++++- linux/advanced/nextcloud/latest/Makefile | 16 +++++++++++++- linux/advanced/redash/Makefile | 4 ++-- linux/advanced/teamcity/server/Makefile | 16 +++++++++++++- linux/advanced/zabbix/agent/Makefile | 16 +++++++++++++- linux/advanced/zabbix/java-gateway/Makefile | 16 +++++++++++++- linux/advanced/zabbix/proxy/Makefile | 16 +++++++++++++- linux/advanced/zabbix/server/Makefile | 16 +++++++++++++- linux/advanced/zabbix/web/Makefile | 16 +++++++++++++- linux/ecosystem/apache2/latest/Makefile | 16 +++++++++++++- linux/ecosystem/apache2/php7.2/Makefile | 16 +++++++++++++- linux/ecosystem/apache2/php7.3/Makefile | 16 +++++++++++++- linux/ecosystem/apache2/php7.4/Makefile | 16 +++++++++++++- .../atlassian/bitbucket/latest/Makefile | 22 +++++++++++++++---- .../bitbucket/latest/docker-compose.yml | 6 +++++ .../atlassian/confluence/latest/Makefile | 22 +++++++++++++++---- .../confluence/latest/docker-compose.yml | 6 +++++ .../atlassian/confluence/templates/5/Makefile | 16 +++++++++++++- .../atlassian/confluence/templates/6/Makefile | 16 +++++++++++++- .../atlassian/crucible/templates/1/Makefile | 16 +++++++++++++- .../fisheye-crucible/latest/Makefile | 16 +++++++++++++- .../fisheye-crucible/templates/2/Makefile | 16 +++++++++++++- .../fisheye-crucible/templates/3/Makefile | 16 +++++++++++++- .../fisheye-crucible/templates/4/Makefile | 16 +++++++++++++- .../atlassian/fisheye/templates/1/Makefile | 16 +++++++++++++- .../ecosystem/atlassian/jira/latest/Makefile | 16 +++++++++++++- .../atlassian/jira/templates/5/Makefile | 16 +++++++++++++- .../atlassian/jira/templates/6/Makefile | 16 +++++++++++++- .../atlassian/jira/templates/7/Makefile | 16 +++++++++++++- .../atlassian/jira/templates/8/Makefile | 16 +++++++++++++- .../electron-release-server/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/devel/jdk11/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/devel/jdk16/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/devel/jdk6/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/devel/jdk7/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/devel/jdk8/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/devel/main/Makefile | 15 ++++++++++++- linux/ecosystem/epicmorg/edge/jdk11/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/edge/jdk16/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/edge/jdk6/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/edge/jdk7/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/edge/jdk8/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/edge/main/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/prod/jdk11/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/prod/jdk16/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/prod/jdk6/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/prod/jdk7/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/prod/jdk8/Makefile | 16 +++++++++++++- linux/ecosystem/epicmorg/prod/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.14.2/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.14.2/php/Makefile | 16 +++++++++++++- .../ecosystem/nginx/1.14.2/rtmp-hls/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.15.12/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.15.12/php/Makefile | 16 +++++++++++++- .../ecosystem/nginx/1.15.12/rtmp-hls/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.16.1/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.16.1/php/Makefile | 16 +++++++++++++- .../ecosystem/nginx/1.16.1/rtmp-hls/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.17.10/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.17.10/php/Makefile | 16 +++++++++++++- .../ecosystem/nginx/1.17.10/rtmp-hls/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.18.0/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.18.0/php/Makefile | 16 +++++++++++++- .../ecosystem/nginx/1.18.0/rtmp-hls/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.19.10/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.19.10/php/Makefile | 16 +++++++++++++- .../ecosystem/nginx/1.19.10/rtmp-hls/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.20.1/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.20.1/php/Makefile | 16 +++++++++++++- .../ecosystem/nginx/1.20.1/rtmp-hls/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.21.3/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/1.21.3/php/Makefile | 16 +++++++++++++- .../ecosystem/nginx/1.21.3/rtmp-hls/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/latest/main/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/latest/php/Makefile | 16 +++++++++++++- linux/ecosystem/nginx/latest/quic/Makefile | 16 +++++++++++++- .../ecosystem/nginx/latest/rtmp-hls/Makefile | 16 +++++++++++++- linux/ecosystem/php/latest/Makefile | 16 +++++++++++++- linux/ecosystem/php/php7.2/Makefile | 16 +++++++++++++- linux/ecosystem/php/php7.3/Makefile | 16 +++++++++++++- linux/ecosystem/php/php7.4/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/10/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/11/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/12/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/13/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/14/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/8.2/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/8.3/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/8.4/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/9.0/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/9.1/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/9.2/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/9.3/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/9.4/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/9.5/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/9.6/Makefile | 16 +++++++++++++- linux/ecosystem/postgres/latest/Makefile | 16 +++++++++++++- linux/ecosystem/qbittorrent/latest/Makefile | 16 +++++++++++++- linux/ecosystem/qbittorrent/stable/Makefile | 16 +++++++++++++- .../teamcity/agent/amxx-sdk/Makefile | 16 +++++++++++++- .../teamcity/agent/android-sdk/Makefile | 16 +++++++++++++- .../teamcity/agent/atlassian-sdk/Makefile | 16 +++++++++++++- .../teamcity/agent/dotnet-sdk/Makefile | 16 +++++++++++++- .../ecosystem/teamcity/agent/latest/Makefile | 16 +++++++++++++- .../ecosystem/teamcity/agent/node12/Makefile | 16 +++++++++++++- .../ecosystem/teamcity/agent/node14/Makefile | 16 +++++++++++++- .../ecosystem/teamcity/agent/node15/Makefile | 16 +++++++++++++- .../ecosystem/teamcity/agent/node16/Makefile | 16 +++++++++++++- .../ecosystem/teamcity/agent/php7.2/Makefile | 16 +++++++++++++- .../ecosystem/teamcity/agent/php7.3/Makefile | 16 +++++++++++++- .../ecosystem/teamcity/agent/php7.4/Makefile | 16 +++++++++++++- .../teamcity/agent/steam-sdk/Makefile | 16 +++++++++++++- .../testrail/{latest => }/Dockerfile | 0 linux/ecosystem/testrail/Makefile | 19 ++++++++++++++++ .../ecosystem/testrail/{latest => }/README.md | 0 .../{latest => }/apache_testrail.conf | 0 .../testrail/{latest => }/docker-compose.yml | 0 linux/ecosystem/testrail/latest/Makefile | 5 ----- linux/ecosystem/testrail/{latest => }/run.sh | 0 .../vk2discord/{latest => }/Dockerfile | 0 linux/ecosystem/vk2discord/Makefile | 19 ++++++++++++++++ .../vk2discord/{latest => }/README.md | 0 .../{latest => }/docker-compose.yml | 0 linux/ecosystem/vk2discord/latest/Makefile | 5 ----- win32/epicmorg/prod/win-server-core/Makefile | 16 +++++++++++++- win32/epicmorg/prod/win10/Makefile | 16 +++++++++++++- 135 files changed, 1857 insertions(+), 138 deletions(-) create mode 100644 linux/ecosystem/atlassian/bitbucket/latest/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/confluence/latest/docker-compose.yml rename linux/ecosystem/testrail/{latest => }/Dockerfile (100%) create mode 100644 linux/ecosystem/testrail/Makefile rename linux/ecosystem/testrail/{latest => }/README.md (100%) rename linux/ecosystem/testrail/{latest => }/apache_testrail.conf (100%) rename linux/ecosystem/testrail/{latest => }/docker-compose.yml (100%) delete mode 100644 linux/ecosystem/testrail/latest/Makefile rename linux/ecosystem/testrail/{latest => }/run.sh (100%) rename linux/ecosystem/vk2discord/{latest => }/Dockerfile (100%) create mode 100644 linux/ecosystem/vk2discord/Makefile rename linux/ecosystem/vk2discord/{latest => }/README.md (100%) rename linux/ecosystem/vk2discord/{latest => }/docker-compose.yml (100%) delete mode 100644 linux/ecosystem/vk2discord/latest/Makefile diff --git a/linux/advanced/mattermost/Makefile b/linux/advanced/mattermost/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/mattermost/Makefile +++ b/linux/advanced/mattermost/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/14/Makefile b/linux/advanced/nextcloud/14/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/14/Makefile +++ b/linux/advanced/nextcloud/14/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/15/Makefile b/linux/advanced/nextcloud/15/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/15/Makefile +++ b/linux/advanced/nextcloud/15/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/16/Makefile b/linux/advanced/nextcloud/16/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/16/Makefile +++ b/linux/advanced/nextcloud/16/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/17/Makefile b/linux/advanced/nextcloud/17/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/17/Makefile +++ b/linux/advanced/nextcloud/17/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/18/Makefile b/linux/advanced/nextcloud/18/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/18/Makefile +++ b/linux/advanced/nextcloud/18/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/19/Makefile b/linux/advanced/nextcloud/19/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/19/Makefile +++ b/linux/advanced/nextcloud/19/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/20/Makefile b/linux/advanced/nextcloud/20/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/20/Makefile +++ b/linux/advanced/nextcloud/20/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/21/Makefile b/linux/advanced/nextcloud/21/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/21/Makefile +++ b/linux/advanced/nextcloud/21/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/22/Makefile b/linux/advanced/nextcloud/22/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/22/Makefile +++ b/linux/advanced/nextcloud/22/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/latest/Makefile b/linux/advanced/nextcloud/latest/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/nextcloud/latest/Makefile +++ b/linux/advanced/nextcloud/latest/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/Makefile b/linux/advanced/redash/Makefile index b34e373de..83d1aca52 100644 --- a/linux/advanced/redash/Makefile +++ b/linux/advanced/redash/Makefile @@ -4,7 +4,7 @@ app: make sync make patch make build - make push + make deploy make clean sync: @@ -19,7 +19,7 @@ patch: build: docker-compose build --compress --parallel -push: +deploy: docker-compose push clean: diff --git a/linux/advanced/teamcity/server/Makefile b/linux/advanced/teamcity/server/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/teamcity/server/Makefile +++ b/linux/advanced/teamcity/server/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/zabbix/agent/Makefile b/linux/advanced/zabbix/agent/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/zabbix/agent/Makefile +++ b/linux/advanced/zabbix/agent/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/zabbix/java-gateway/Makefile b/linux/advanced/zabbix/java-gateway/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/zabbix/java-gateway/Makefile +++ b/linux/advanced/zabbix/java-gateway/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/zabbix/proxy/Makefile b/linux/advanced/zabbix/proxy/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/zabbix/proxy/Makefile +++ b/linux/advanced/zabbix/proxy/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/zabbix/server/Makefile b/linux/advanced/zabbix/server/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/zabbix/server/Makefile +++ b/linux/advanced/zabbix/server/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + 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/zabbix/web/Makefile b/linux/advanced/zabbix/web/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/advanced/zabbix/web/Makefile +++ b/linux/advanced/zabbix/web/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/apache2/latest/Makefile b/linux/ecosystem/apache2/latest/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/apache2/latest/Makefile +++ b/linux/ecosystem/apache2/latest/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/apache2/php7.2/Makefile b/linux/ecosystem/apache2/php7.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/apache2/php7.2/Makefile +++ b/linux/ecosystem/apache2/php7.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/apache2/php7.3/Makefile b/linux/ecosystem/apache2/php7.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/apache2/php7.3/Makefile +++ b/linux/ecosystem/apache2/php7.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/apache2/php7.4/Makefile b/linux/ecosystem/apache2/php7.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/apache2/php7.4/Makefile +++ b/linux/ecosystem/apache2/php7.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/bitbucket/latest/Makefile b/linux/ecosystem/atlassian/bitbucket/latest/Makefile index 837bad7bf..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/bitbucket/latest/Makefile +++ b/linux/ecosystem/atlassian/bitbucket/latest/Makefile @@ -1,5 +1,19 @@ -all: bitbucket +all: app -bitbucket: - docker build --compress -t epicmorg/bitbucket . - docker push epicmorg/bitbucket:latest \ No newline at end of file +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker 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/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/ecosystem/atlassian/confluence/latest/Makefile b/linux/ecosystem/atlassian/confluence/latest/Makefile index 2a085ddba..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/confluence/latest/Makefile +++ b/linux/ecosystem/atlassian/confluence/latest/Makefile @@ -1,5 +1,19 @@ -all: confl +all: app -confl: - docker build --compress -t epicmorg/confluence . - docker push epicmorg/confluence \ No newline at end of file +app: + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: + docker-compose push + +clean: + docker 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/templates/5/Makefile b/linux/ecosystem/atlassian/confluence/templates/5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/confluence/templates/5/Makefile +++ b/linux/ecosystem/atlassian/confluence/templates/5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/confluence/templates/6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/confluence/templates/6/Makefile +++ b/linux/ecosystem/atlassian/confluence/templates/6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/crucible/templates/1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/crucible/templates/1/Makefile +++ b/linux/ecosystem/atlassian/crucible/templates/1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/latest/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/fisheye-crucible/latest/Makefile +++ b/linux/ecosystem/atlassian/fisheye-crucible/latest/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Makefile +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Makefile +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Makefile +++ b/linux/ecosystem/atlassian/fisheye-crucible/templates/4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/fisheye/templates/1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/fisheye/templates/1/Makefile +++ b/linux/ecosystem/atlassian/fisheye/templates/1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/jira/latest/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/latest/Makefile +++ b/linux/ecosystem/atlassian/jira/latest/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/jira/templates/5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/templates/5/Makefile +++ b/linux/ecosystem/atlassian/jira/templates/5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/jira/templates/6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/templates/6/Makefile +++ b/linux/ecosystem/atlassian/jira/templates/6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/jira/templates/7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/templates/7/Makefile +++ b/linux/ecosystem/atlassian/jira/templates/7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/atlassian/jira/templates/8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/templates/8/Makefile +++ b/linux/ecosystem/atlassian/jira/templates/8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/electron-release-server/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/electron-release-server/Makefile +++ b/linux/ecosystem/electron-release-server/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/devel/jdk11/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/devel/jdk11/Makefile +++ b/linux/ecosystem/epicmorg/devel/jdk11/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/devel/jdk16/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/devel/jdk16/Makefile +++ b/linux/ecosystem/epicmorg/devel/jdk16/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/devel/jdk6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/devel/jdk6/Makefile +++ b/linux/ecosystem/epicmorg/devel/jdk6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/devel/jdk7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/devel/jdk7/Makefile +++ b/linux/ecosystem/epicmorg/devel/jdk7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/devel/jdk8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/devel/jdk8/Makefile +++ b/linux/ecosystem/epicmorg/devel/jdk8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/devel/main/Makefile index 39e5c5f1b..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/devel/main/Makefile +++ b/linux/ecosystem/epicmorg/devel/main/Makefile @@ -1,6 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/edge/jdk11/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/edge/jdk11/Makefile +++ b/linux/ecosystem/epicmorg/edge/jdk11/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/edge/jdk16/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/edge/jdk16/Makefile +++ b/linux/ecosystem/epicmorg/edge/jdk16/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/edge/jdk6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/edge/jdk6/Makefile +++ b/linux/ecosystem/epicmorg/edge/jdk6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/edge/jdk7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/edge/jdk7/Makefile +++ b/linux/ecosystem/epicmorg/edge/jdk7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/edge/jdk8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/edge/jdk8/Makefile +++ b/linux/ecosystem/epicmorg/edge/jdk8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/edge/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/edge/main/Makefile +++ b/linux/ecosystem/epicmorg/edge/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/prod/jdk11/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/prod/jdk11/Makefile +++ b/linux/ecosystem/epicmorg/prod/jdk11/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/prod/jdk16/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/prod/jdk16/Makefile +++ b/linux/ecosystem/epicmorg/prod/jdk16/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/prod/jdk6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/prod/jdk6/Makefile +++ b/linux/ecosystem/epicmorg/prod/jdk6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/prod/jdk7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/prod/jdk7/Makefile +++ b/linux/ecosystem/epicmorg/prod/jdk7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/epicmorg/prod/jdk8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/prod/jdk8/Makefile +++ b/linux/ecosystem/epicmorg/prod/jdk8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/main/Makefile b/linux/ecosystem/epicmorg/prod/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/epicmorg/prod/main/Makefile +++ b/linux/ecosystem/epicmorg/prod/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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.14.2/main/Makefile b/linux/ecosystem/nginx/1.14.2/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.14.2/main/Makefile +++ b/linux/ecosystem/nginx/1.14.2/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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.14.2/php/Makefile b/linux/ecosystem/nginx/1.14.2/php/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.14.2/php/Makefile +++ b/linux/ecosystem/nginx/1.14.2/php/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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.14.2/rtmp-hls/Makefile b/linux/ecosystem/nginx/1.14.2/rtmp-hls/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.14.2/rtmp-hls/Makefile +++ b/linux/ecosystem/nginx/1.14.2/rtmp-hls/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.15.12/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.15.12/main/Makefile +++ b/linux/ecosystem/nginx/1.15.12/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.15.12/php/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.15.12/php/Makefile +++ b/linux/ecosystem/nginx/1.15.12/php/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.15.12/rtmp-hls/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.15.12/rtmp-hls/Makefile +++ b/linux/ecosystem/nginx/1.15.12/rtmp-hls/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.16.1/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.16.1/main/Makefile +++ b/linux/ecosystem/nginx/1.16.1/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.16.1/php/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.16.1/php/Makefile +++ b/linux/ecosystem/nginx/1.16.1/php/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.16.1/rtmp-hls/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.16.1/rtmp-hls/Makefile +++ b/linux/ecosystem/nginx/1.16.1/rtmp-hls/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.17.10/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.17.10/main/Makefile +++ b/linux/ecosystem/nginx/1.17.10/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.17.10/php/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.17.10/php/Makefile +++ b/linux/ecosystem/nginx/1.17.10/php/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.17.10/rtmp-hls/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.17.10/rtmp-hls/Makefile +++ b/linux/ecosystem/nginx/1.17.10/rtmp-hls/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.18.0/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.18.0/main/Makefile +++ b/linux/ecosystem/nginx/1.18.0/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.18.0/php/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.18.0/php/Makefile +++ b/linux/ecosystem/nginx/1.18.0/php/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.18.0/rtmp-hls/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.18.0/rtmp-hls/Makefile +++ b/linux/ecosystem/nginx/1.18.0/rtmp-hls/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.19.10/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.19.10/main/Makefile +++ b/linux/ecosystem/nginx/1.19.10/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.19.10/php/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.19.10/php/Makefile +++ b/linux/ecosystem/nginx/1.19.10/php/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.19.10/rtmp-hls/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.19.10/rtmp-hls/Makefile +++ b/linux/ecosystem/nginx/1.19.10/rtmp-hls/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.20.1/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.20.1/main/Makefile +++ b/linux/ecosystem/nginx/1.20.1/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.20.1/php/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.20.1/php/Makefile +++ b/linux/ecosystem/nginx/1.20.1/php/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.20.1/rtmp-hls/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.20.1/rtmp-hls/Makefile +++ b/linux/ecosystem/nginx/1.20.1/rtmp-hls/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.21.3/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.21.3/main/Makefile +++ b/linux/ecosystem/nginx/1.21.3/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.21.3/php/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.21.3/php/Makefile +++ b/linux/ecosystem/nginx/1.21.3/php/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/1.21.3/rtmp-hls/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/1.21.3/rtmp-hls/Makefile +++ b/linux/ecosystem/nginx/1.21.3/rtmp-hls/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/latest/main/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/latest/main/Makefile +++ b/linux/ecosystem/nginx/latest/main/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/latest/php/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/latest/php/Makefile +++ b/linux/ecosystem/nginx/latest/php/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/latest/quic/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/latest/quic/Makefile +++ b/linux/ecosystem/nginx/latest/quic/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/nginx/latest/rtmp-hls/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/nginx/latest/rtmp-hls/Makefile +++ b/linux/ecosystem/nginx/latest/rtmp-hls/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/php/latest/Makefile b/linux/ecosystem/php/latest/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/php/latest/Makefile +++ b/linux/ecosystem/php/latest/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/php/php7.2/Makefile b/linux/ecosystem/php/php7.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/php/php7.2/Makefile +++ b/linux/ecosystem/php/php7.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/php/php7.3/Makefile b/linux/ecosystem/php/php7.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/php/php7.3/Makefile +++ b/linux/ecosystem/php/php7.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/php/php7.4/Makefile b/linux/ecosystem/php/php7.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/php/php7.4/Makefile +++ b/linux/ecosystem/php/php7.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/10/Makefile b/linux/ecosystem/postgres/10/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/10/Makefile +++ b/linux/ecosystem/postgres/10/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/11/Makefile b/linux/ecosystem/postgres/11/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/11/Makefile +++ b/linux/ecosystem/postgres/11/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/12/Makefile b/linux/ecosystem/postgres/12/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/12/Makefile +++ b/linux/ecosystem/postgres/12/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/13/Makefile b/linux/ecosystem/postgres/13/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/13/Makefile +++ b/linux/ecosystem/postgres/13/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/14/Makefile b/linux/ecosystem/postgres/14/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/14/Makefile +++ b/linux/ecosystem/postgres/14/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/8.2/Makefile b/linux/ecosystem/postgres/8.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/8.2/Makefile +++ b/linux/ecosystem/postgres/8.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/8.3/Makefile b/linux/ecosystem/postgres/8.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/8.3/Makefile +++ b/linux/ecosystem/postgres/8.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/8.4/Makefile b/linux/ecosystem/postgres/8.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/8.4/Makefile +++ b/linux/ecosystem/postgres/8.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/9.0/Makefile b/linux/ecosystem/postgres/9.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/9.0/Makefile +++ b/linux/ecosystem/postgres/9.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/9.1/Makefile b/linux/ecosystem/postgres/9.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/9.1/Makefile +++ b/linux/ecosystem/postgres/9.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/9.2/Makefile b/linux/ecosystem/postgres/9.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/9.2/Makefile +++ b/linux/ecosystem/postgres/9.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/9.3/Makefile b/linux/ecosystem/postgres/9.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/9.3/Makefile +++ b/linux/ecosystem/postgres/9.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/9.4/Makefile b/linux/ecosystem/postgres/9.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/9.4/Makefile +++ b/linux/ecosystem/postgres/9.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/9.5/Makefile b/linux/ecosystem/postgres/9.5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/9.5/Makefile +++ b/linux/ecosystem/postgres/9.5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/9.6/Makefile b/linux/ecosystem/postgres/9.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/9.6/Makefile +++ b/linux/ecosystem/postgres/9.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/postgres/latest/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/postgres/latest/Makefile +++ b/linux/ecosystem/postgres/latest/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/latest/Makefile b/linux/ecosystem/qbittorrent/latest/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/qbittorrent/latest/Makefile +++ b/linux/ecosystem/qbittorrent/latest/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/qbittorrent/stable/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/qbittorrent/stable/Makefile +++ b/linux/ecosystem/qbittorrent/stable/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/amxx-sdk/Makefile b/linux/ecosystem/teamcity/agent/amxx-sdk/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/amxx-sdk/Makefile +++ b/linux/ecosystem/teamcity/agent/amxx-sdk/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/android-sdk/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/android-sdk/Makefile +++ b/linux/ecosystem/teamcity/agent/android-sdk/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/atlassian-sdk/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/atlassian-sdk/Makefile +++ b/linux/ecosystem/teamcity/agent/atlassian-sdk/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/dotnet-sdk/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/dotnet-sdk/Makefile +++ b/linux/ecosystem/teamcity/agent/dotnet-sdk/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/latest/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/latest/Makefile +++ b/linux/ecosystem/teamcity/agent/latest/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/node12/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/node12/Makefile +++ b/linux/ecosystem/teamcity/agent/node12/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/node14/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/node14/Makefile +++ b/linux/ecosystem/teamcity/agent/node14/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/node15/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/node15/Makefile +++ b/linux/ecosystem/teamcity/agent/node15/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/node16/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/node16/Makefile +++ b/linux/ecosystem/teamcity/agent/node16/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/php7.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/php7.2/Makefile +++ b/linux/ecosystem/teamcity/agent/php7.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/php7.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/php7.3/Makefile +++ b/linux/ecosystem/teamcity/agent/php7.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/php7.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/php7.4/Makefile +++ b/linux/ecosystem/teamcity/agent/php7.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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/Makefile b/linux/ecosystem/teamcity/agent/steam-sdk/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/teamcity/agent/steam-sdk/Makefile +++ b/linux/ecosystem/teamcity/agent/steam-sdk/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af diff --git a/linux/ecosystem/testrail/latest/Dockerfile b/linux/ecosystem/testrail/Dockerfile similarity index 100% rename from linux/ecosystem/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/ecosystem/testrail/latest/README.md b/linux/ecosystem/testrail/README.md similarity index 100% rename from linux/ecosystem/testrail/latest/README.md rename to linux/ecosystem/testrail/README.md diff --git a/linux/ecosystem/testrail/latest/apache_testrail.conf b/linux/ecosystem/testrail/apache_testrail.conf similarity index 100% rename from linux/ecosystem/testrail/latest/apache_testrail.conf rename to linux/ecosystem/testrail/apache_testrail.conf diff --git a/linux/ecosystem/testrail/latest/docker-compose.yml b/linux/ecosystem/testrail/docker-compose.yml similarity index 100% rename from linux/ecosystem/testrail/latest/docker-compose.yml rename to linux/ecosystem/testrail/docker-compose.yml diff --git a/linux/ecosystem/testrail/latest/Makefile b/linux/ecosystem/testrail/latest/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/ecosystem/testrail/latest/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/linux/ecosystem/testrail/latest/run.sh b/linux/ecosystem/testrail/run.sh similarity index 100% rename from linux/ecosystem/testrail/latest/run.sh rename to linux/ecosystem/testrail/run.sh diff --git a/linux/ecosystem/vk2discord/latest/Dockerfile b/linux/ecosystem/vk2discord/Dockerfile similarity index 100% rename from linux/ecosystem/vk2discord/latest/Dockerfile rename to linux/ecosystem/vk2discord/Dockerfile 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/ecosystem/vk2discord/latest/README.md b/linux/ecosystem/vk2discord/README.md similarity index 100% rename from linux/ecosystem/vk2discord/latest/README.md rename to linux/ecosystem/vk2discord/README.md diff --git a/linux/ecosystem/vk2discord/latest/docker-compose.yml b/linux/ecosystem/vk2discord/docker-compose.yml similarity index 100% rename from linux/ecosystem/vk2discord/latest/docker-compose.yml rename to linux/ecosystem/vk2discord/docker-compose.yml diff --git a/linux/ecosystem/vk2discord/latest/Makefile b/linux/ecosystem/vk2discord/latest/Makefile deleted file mode 100644 index 82c5a2de6..000000000 --- a/linux/ecosystem/vk2discord/latest/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: app - -app: - docker-compose build --compress - docker-compose push diff --git a/win32/epicmorg/prod/win-server-core/Makefile b/win32/epicmorg/prod/win-server-core/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/win32/epicmorg/prod/win-server-core/Makefile +++ b/win32/epicmorg/prod/win-server-core/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +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/Makefile b/win32/epicmorg/prod/win10/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/win32/epicmorg/prod/win10/Makefile +++ b/win32/epicmorg/prod/win10/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker container prune -f + docker image prune -f + docker network prune -f + docker volume prune -f + docker system prune -af From a3087623c1da63225b2d8d49b1fa83a653ad078c Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Tue, 2 Nov 2021 04:00:42 +0300 Subject: [PATCH 121/144] Makefile improvements --- CHANGELOG.md | 1 + Makefile | 5 +++-- bin/docker-compose-update.sh | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4dc16994..803e02db6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ * `october-november` * added `nginx:quic` image. UNSTABLE. * added `redash:latest` image in to `advanced` pack. + * improved `Makefile`s. * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * fully reworked `teamcity-agent` images. diff --git a/Makefile b/Makefile index f73020fa8..6f55b776c 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ -VERSION = "2021.11.01" +VERSION = "2021.11.01" +DOCKER_SCAN_SUGGEST = false all: app @@ -150,4 +151,4 @@ ecosystem-images: 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 \ No newline at end of file + cd `pwd`/linux/ecosystem/nginx/latest/quic && pwd && make diff --git a/bin/docker-compose-update.sh b/bin/docker-compose-update.sh index d964f0e12..2fc9249f5 100755 --- a/bin/docker-compose-update.sh +++ b/bin/docker-compose-update.sh @@ -2,4 +2,4 @@ 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 \ No newline at end of file +docker-compose -v From 9736cba0e8a67ef7c932f1ded4c7f48a4c5e5365 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Tue, 2 Nov 2021 04:07:21 +0300 Subject: [PATCH 122/144] base images improvements --- linux/ecosystem/epicmorg/devel/main/Dockerfile | 4 ++-- linux/ecosystem/epicmorg/edge/main/Dockerfile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/linux/ecosystem/epicmorg/devel/main/Dockerfile b/linux/ecosystem/epicmorg/devel/main/Dockerfile index 3bcc12471..fb32d5a14 100644 --- a/linux/ecosystem/epicmorg/devel/main/Dockerfile +++ b/linux/ecosystem/epicmorg/devel/main/Dockerfile @@ -52,7 +52,8 @@ RUN apt-get update && \ libavcodec-dev \ libsdl2-dev \ libsdl-image1.2-dev \ - libxml2-dev yasm \ + libxml2-dev \ + yasm \ devscripts \ automake \ libtool \ @@ -64,7 +65,6 @@ RUN apt-get update && \ zlib1g \ zlib1g-dev \ libssl-dev \ - libxml2-dev \ libxslt-dev \ libgd-dev \ libpcre3-dev \ diff --git a/linux/ecosystem/epicmorg/edge/main/Dockerfile b/linux/ecosystem/epicmorg/edge/main/Dockerfile index c86fa4cfb..6c340284e 100644 --- a/linux/ecosystem/epicmorg/edge/main/Dockerfile +++ b/linux/ecosystem/epicmorg/edge/main/Dockerfile @@ -9,7 +9,7 @@ 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 && \ + apt-get install -y libc6 libxml2-utils && \ apt upgrade -y && \ apt dist-upgrade -y && \ apt autoremove -y From ee7d7af4592fe50be9fd2381fda0ba135d6b7b2e Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Tue, 2 Nov 2021 14:03:59 +0300 Subject: [PATCH 123/144] Makefile fixes --- Makefile | 24 ++++++++++++------------ linux/advanced/redash/Makefile | 1 - 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 6f55b776c..77d80503d 100644 --- a/Makefile +++ b/Makefile @@ -59,19 +59,19 @@ advanced-images: cd `pwd`/linux/advanced/zabbix/web && pwd && make cd `pwd`/linux/advanced/mattermost && pwd && make - cd `pwd`/linux/advanced/nextcloud/latest && pwd && make +# cd `pwd`/linux/advanced/nextcloud/latest && pwd && make cd `pwd`/linux/advanced/teamcity/server && pwd && make cd `pwd`/linux/advanced/redash && pwd && make - cd `pwd`/linux/advanced/nextcloud/14 && pwd && make - cd `pwd`/linux/advanced/nextcloud/15 && pwd && make - cd `pwd`/linux/advanced/nextcloud/16 && pwd && make - cd `pwd`/linux/advanced/nextcloud/17 && pwd && make - cd `pwd`/linux/advanced/nextcloud/18 && pwd && make - cd `pwd`/linux/advanced/nextcloud/19 && pwd && make - cd `pwd`/linux/advanced/nextcloud/20 && pwd && make - cd `pwd`/linux/advanced/nextcloud/21 && pwd && make - cd `pwd`/linux/advanced/nextcloud/22 && pwd && make +# cd `pwd`/linux/advanced/nextcloud/14 && pwd && make +# cd `pwd`/linux/advanced/nextcloud/15 && pwd && make +# cd `pwd`/linux/advanced/nextcloud/16 && pwd && make +# cd `pwd`/linux/advanced/nextcloud/17 && pwd && make +# cd `pwd`/linux/advanced/nextcloud/18 && pwd && make +# cd `pwd`/linux/advanced/nextcloud/19 && pwd && make +# cd `pwd`/linux/advanced/nextcloud/20 && pwd && make +# cd `pwd`/linux/advanced/nextcloud/21 && pwd && make +# cd `pwd`/linux/advanced/nextcloud/22 && pwd && make ecosystem-images: @echo "=======================================" @@ -109,7 +109,7 @@ ecosystem-images: cd `pwd`/linux/ecosystem/apache2/php7.3 && pwd && make cd `pwd`/linux/ecosystem/apache2/php7.4 && pwd && make - cd `pwd`/linux/ecosystem/testrail/latest && pwd && make + cd `pwd`/linux/ecosystem/testrail && pwd && make cd `pwd`/linux/ecosystem/postgres/latest && pwd && make cd `pwd`/linux/ecosystem/postgres/8.2 && pwd && make @@ -131,7 +131,7 @@ ecosystem-images: cd `pwd`/linux/ecosystem/qbittorrent/latest && pwd && make cd `pwd`/linux/ecosystem/qbittorrent/stable && pwd && make - cd `pwd`/linux/ecosystem/vk2discord/latest && pwd && make + cd `pwd`/linux/ecosystem/vk2discord && pwd && make cd `pwd`/linux/ecosystem/teamcity/agent/latest && pwd && make diff --git a/linux/advanced/redash/Makefile b/linux/advanced/redash/Makefile index 83d1aca52..dbd815f41 100644 --- a/linux/advanced/redash/Makefile +++ b/linux/advanced/redash/Makefile @@ -23,7 +23,6 @@ deploy: docker-compose push clean: - rm -rfv redash-repo docker container prune -f docker image prune -f docker network prune -f From b91396f6d990fc21d10e5e96ae26c54e9d853a42 Mon Sep 17 00:00:00 2001 From: EpicMorg Date: Thu, 4 Nov 2021 05:18:23 +0300 Subject: [PATCH 124/144] nextcloud updates --- CHANGELOG.md | 2 + Makefile | 31 +- linux/advanced/nextcloud/14/sources.list | 19 - linux/advanced/nextcloud/15/sources.list | 19 - linux/advanced/nextcloud/16/sources.list | 19 - linux/advanced/nextcloud/17/sources.list | 19 - linux/advanced/nextcloud/18/sources.list | 19 - linux/advanced/nextcloud/19/sources.list | 19 - linux/advanced/nextcloud/20/sources.list | 19 - linux/advanced/nextcloud/21/sources.list | 19 - linux/advanced/nextcloud/22/sources.list | 19 - linux/advanced/nextcloud/latest/sources.list | 19 - .../advanced/nextcloud/patched/14/Dockerfile | 8 + .../nextcloud/{ => patched}/14/Makefile | 0 .../nextcloud/{ => patched}/14/README.md | 0 .../nextcloud/{ => patched}/14/Streamer.php | 0 .../nextcloud/patched/14/docker-compose.yml | 6 + .../advanced/nextcloud/patched/15/Dockerfile | 8 + .../nextcloud/{ => patched}/15/Makefile | 0 .../nextcloud/{ => patched}/15/README.md | 0 .../nextcloud/{ => patched}/15/Streamer.php | 0 .../nextcloud/patched/15/docker-compose.yml | 6 + .../advanced/nextcloud/patched/16/Dockerfile | 8 + .../nextcloud/{ => patched}/16/Makefile | 0 .../nextcloud/{ => patched}/16/README.md | 0 .../nextcloud/{ => patched}/16/Streamer.php | 0 .../nextcloud/patched/16/docker-compose.yml | 6 + .../advanced/nextcloud/patched/17/Dockerfile | 8 + .../nextcloud/{ => patched}/17/Makefile | 0 .../nextcloud/{ => patched}/17/README.md | 0 .../nextcloud/{ => patched}/17/Streamer.php | 0 .../nextcloud/patched/17/docker-compose.yml | 6 + .../advanced/nextcloud/patched/18/Dockerfile | 8 + .../nextcloud/{ => patched}/18/Makefile | 0 .../nextcloud/{ => patched}/18/README.md | 0 .../nextcloud/{ => patched}/18/Streamer.php | 0 .../nextcloud/patched/18/docker-compose.yml | 6 + .../advanced/nextcloud/patched/19/Dockerfile | 8 + .../nextcloud/{ => patched}/19/Makefile | 0 .../nextcloud/{ => patched}/19/README.md | 0 .../nextcloud/{ => patched}/19/Streamer.php | 0 .../nextcloud/patched/19/docker-compose.yml | 6 + .../advanced/nextcloud/patched/20/Dockerfile | 8 + .../nextcloud/{ => patched}/20/Makefile | 0 .../nextcloud/{ => patched}/20/README.md | 0 .../nextcloud/{ => patched}/20/Streamer.php | 0 .../nextcloud/patched/20/docker-compose.yml | 6 + .../advanced/nextcloud/patched/21/Dockerfile | 8 + .../nextcloud/{ => patched}/21/Makefile | 0 .../nextcloud/{ => patched}/21/README.md | 0 .../nextcloud/{ => patched}/21/Streamer.php | 0 .../nextcloud/patched/21/docker-compose.yml | 6 + .../advanced/nextcloud/patched/22/Dockerfile | 8 + .../nextcloud/{ => patched}/22/Makefile | 0 .../nextcloud/{ => patched}/22/README.md | 0 .../nextcloud/{ => patched}/22/Streamer.php | 0 .../nextcloud/patched/22/docker-compose.yml | 6 + .../nextcloud/patched/latest/Dockerfile | 8 + .../nextcloud/{ => patched}/latest/Makefile | 0 .../nextcloud/{ => patched}/latest/README.md | 0 .../{ => patched}/latest/Streamer.php | 0 .../patched/latest/docker-compose.yml | 6 + .../nextcloud/{ => pure}/14/Dockerfile | 12 +- linux/advanced/nextcloud/pure/14/Makefile | 19 + linux/advanced/nextcloud/pure/14/README.md | 527 ++++++++++++++++++ .../{ => pure}/14/docker-compose.yml | 0 .../advanced/nextcloud/{ => pure}/14/smb.conf | 0 linux/advanced/nextcloud/pure/14/sources.list | 21 + .../nextcloud/{ => pure}/15/Dockerfile | 12 +- linux/advanced/nextcloud/pure/15/Makefile | 19 + linux/advanced/nextcloud/pure/15/README.md | 527 ++++++++++++++++++ .../{ => pure}/15/docker-compose.yml | 0 .../advanced/nextcloud/{ => pure}/15/smb.conf | 0 linux/advanced/nextcloud/pure/15/sources.list | 21 + .../nextcloud/{ => pure}/16/Dockerfile | 12 +- linux/advanced/nextcloud/pure/16/Makefile | 19 + linux/advanced/nextcloud/pure/16/README.md | 527 ++++++++++++++++++ .../{ => pure}/16/docker-compose.yml | 0 .../advanced/nextcloud/{ => pure}/16/smb.conf | 0 linux/advanced/nextcloud/pure/16/sources.list | 21 + .../nextcloud/{ => pure}/17/Dockerfile | 12 +- linux/advanced/nextcloud/pure/17/Makefile | 19 + linux/advanced/nextcloud/pure/17/README.md | 527 ++++++++++++++++++ .../{ => pure}/17/docker-compose.yml | 0 .../advanced/nextcloud/{ => pure}/17/smb.conf | 0 linux/advanced/nextcloud/pure/17/sources.list | 21 + .../nextcloud/{ => pure}/18/Dockerfile | 12 +- linux/advanced/nextcloud/pure/18/Makefile | 19 + linux/advanced/nextcloud/pure/18/README.md | 527 ++++++++++++++++++ .../{ => pure}/18/docker-compose.yml | 0 .../advanced/nextcloud/{ => pure}/18/smb.conf | 0 linux/advanced/nextcloud/pure/18/sources.list | 21 + .../nextcloud/{ => pure}/19/Dockerfile | 12 +- linux/advanced/nextcloud/pure/19/Makefile | 19 + linux/advanced/nextcloud/pure/19/README.md | 527 ++++++++++++++++++ .../{ => pure}/19/docker-compose.yml | 0 .../advanced/nextcloud/{ => pure}/19/smb.conf | 0 linux/advanced/nextcloud/pure/19/sources.list | 21 + .../nextcloud/{ => pure}/20/Dockerfile | 12 +- linux/advanced/nextcloud/pure/20/Makefile | 19 + linux/advanced/nextcloud/pure/20/README.md | 527 ++++++++++++++++++ .../{ => pure}/20/docker-compose.yml | 0 .../advanced/nextcloud/{ => pure}/20/smb.conf | 0 linux/advanced/nextcloud/pure/20/sources.list | 21 + .../nextcloud/{ => pure}/21/Dockerfile | 12 +- linux/advanced/nextcloud/pure/21/Makefile | 19 + linux/advanced/nextcloud/pure/21/README.md | 527 ++++++++++++++++++ .../{ => pure}/21/docker-compose.yml | 0 .../advanced/nextcloud/{ => pure}/21/smb.conf | 0 linux/advanced/nextcloud/pure/21/sources.list | 21 + .../nextcloud/{ => pure}/22/Dockerfile | 12 +- linux/advanced/nextcloud/pure/22/Makefile | 19 + linux/advanced/nextcloud/pure/22/README.md | 527 ++++++++++++++++++ .../{ => pure}/22/docker-compose.yml | 0 .../advanced/nextcloud/{ => pure}/22/smb.conf | 0 linux/advanced/nextcloud/pure/22/sources.list | 21 + .../nextcloud/{ => pure}/latest/Dockerfile | 11 +- linux/advanced/nextcloud/pure/latest/Makefile | 19 + .../advanced/nextcloud/pure/latest/README.md | 527 ++++++++++++++++++ .../{ => pure}/latest/docker-compose.yml | 0 .../nextcloud/{ => pure}/latest/smb.conf | 0 .../nextcloud/pure/latest/sources.list | 21 + 122 files changed, 5872 insertions(+), 280 deletions(-) delete mode 100644 linux/advanced/nextcloud/14/sources.list delete mode 100644 linux/advanced/nextcloud/15/sources.list delete mode 100644 linux/advanced/nextcloud/16/sources.list delete mode 100644 linux/advanced/nextcloud/17/sources.list delete mode 100644 linux/advanced/nextcloud/18/sources.list delete mode 100644 linux/advanced/nextcloud/19/sources.list delete mode 100644 linux/advanced/nextcloud/20/sources.list delete mode 100644 linux/advanced/nextcloud/21/sources.list delete mode 100644 linux/advanced/nextcloud/22/sources.list delete mode 100644 linux/advanced/nextcloud/latest/sources.list create mode 100644 linux/advanced/nextcloud/patched/14/Dockerfile rename linux/advanced/nextcloud/{ => patched}/14/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/14/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/14/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/14/docker-compose.yml create mode 100644 linux/advanced/nextcloud/patched/15/Dockerfile rename linux/advanced/nextcloud/{ => patched}/15/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/15/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/15/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/15/docker-compose.yml create mode 100644 linux/advanced/nextcloud/patched/16/Dockerfile rename linux/advanced/nextcloud/{ => patched}/16/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/16/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/16/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/16/docker-compose.yml create mode 100644 linux/advanced/nextcloud/patched/17/Dockerfile rename linux/advanced/nextcloud/{ => patched}/17/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/17/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/17/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/17/docker-compose.yml create mode 100644 linux/advanced/nextcloud/patched/18/Dockerfile rename linux/advanced/nextcloud/{ => patched}/18/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/18/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/18/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/18/docker-compose.yml create mode 100644 linux/advanced/nextcloud/patched/19/Dockerfile rename linux/advanced/nextcloud/{ => patched}/19/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/19/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/19/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/19/docker-compose.yml create mode 100644 linux/advanced/nextcloud/patched/20/Dockerfile rename linux/advanced/nextcloud/{ => patched}/20/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/20/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/20/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/20/docker-compose.yml create mode 100644 linux/advanced/nextcloud/patched/21/Dockerfile rename linux/advanced/nextcloud/{ => patched}/21/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/21/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/21/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/21/docker-compose.yml create mode 100644 linux/advanced/nextcloud/patched/22/Dockerfile rename linux/advanced/nextcloud/{ => patched}/22/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/22/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/22/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/22/docker-compose.yml create mode 100644 linux/advanced/nextcloud/patched/latest/Dockerfile rename linux/advanced/nextcloud/{ => patched}/latest/Makefile (100%) rename linux/advanced/nextcloud/{ => patched}/latest/README.md (100%) rename linux/advanced/nextcloud/{ => patched}/latest/Streamer.php (100%) create mode 100644 linux/advanced/nextcloud/patched/latest/docker-compose.yml rename linux/advanced/nextcloud/{ => pure}/14/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/14/Makefile create mode 100644 linux/advanced/nextcloud/pure/14/README.md rename linux/advanced/nextcloud/{ => pure}/14/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/14/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/14/sources.list rename linux/advanced/nextcloud/{ => pure}/15/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/15/Makefile create mode 100644 linux/advanced/nextcloud/pure/15/README.md rename linux/advanced/nextcloud/{ => pure}/15/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/15/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/15/sources.list rename linux/advanced/nextcloud/{ => pure}/16/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/16/Makefile create mode 100644 linux/advanced/nextcloud/pure/16/README.md rename linux/advanced/nextcloud/{ => pure}/16/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/16/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/16/sources.list rename linux/advanced/nextcloud/{ => pure}/17/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/17/Makefile create mode 100644 linux/advanced/nextcloud/pure/17/README.md rename linux/advanced/nextcloud/{ => pure}/17/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/17/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/17/sources.list rename linux/advanced/nextcloud/{ => pure}/18/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/18/Makefile create mode 100644 linux/advanced/nextcloud/pure/18/README.md rename linux/advanced/nextcloud/{ => pure}/18/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/18/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/18/sources.list rename linux/advanced/nextcloud/{ => pure}/19/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/19/Makefile create mode 100644 linux/advanced/nextcloud/pure/19/README.md rename linux/advanced/nextcloud/{ => pure}/19/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/19/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/19/sources.list rename linux/advanced/nextcloud/{ => pure}/20/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/20/Makefile create mode 100644 linux/advanced/nextcloud/pure/20/README.md rename linux/advanced/nextcloud/{ => pure}/20/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/20/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/20/sources.list rename linux/advanced/nextcloud/{ => pure}/21/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/21/Makefile create mode 100644 linux/advanced/nextcloud/pure/21/README.md rename linux/advanced/nextcloud/{ => pure}/21/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/21/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/21/sources.list rename linux/advanced/nextcloud/{ => pure}/22/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/22/Makefile create mode 100644 linux/advanced/nextcloud/pure/22/README.md rename linux/advanced/nextcloud/{ => pure}/22/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/22/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/22/sources.list rename linux/advanced/nextcloud/{ => pure}/latest/Dockerfile (84%) create mode 100644 linux/advanced/nextcloud/pure/latest/Makefile create mode 100644 linux/advanced/nextcloud/pure/latest/README.md rename linux/advanced/nextcloud/{ => pure}/latest/docker-compose.yml (100%) rename linux/advanced/nextcloud/{ => pure}/latest/smb.conf (100%) create mode 100644 linux/advanced/nextcloud/pure/latest/sources.list diff --git a/CHANGELOG.md b/CHANGELOG.md index 803e02db6..cf6c01eb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * 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. * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * fully reworked `teamcity-agent` images. diff --git a/Makefile b/Makefile index 77d80503d..437af375b 100644 --- a/Makefile +++ b/Makefile @@ -59,19 +59,30 @@ advanced-images: cd `pwd`/linux/advanced/zabbix/web && pwd && make cd `pwd`/linux/advanced/mattermost && pwd && make -# cd `pwd`/linux/advanced/nextcloud/latest && 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/14 && pwd && make -# cd `pwd`/linux/advanced/nextcloud/15 && pwd && make -# cd `pwd`/linux/advanced/nextcloud/16 && pwd && make -# cd `pwd`/linux/advanced/nextcloud/17 && pwd && make -# cd `pwd`/linux/advanced/nextcloud/18 && pwd && make -# cd `pwd`/linux/advanced/nextcloud/19 && pwd && make -# cd `pwd`/linux/advanced/nextcloud/20 && pwd && make -# cd `pwd`/linux/advanced/nextcloud/21 && pwd && make -# cd `pwd`/linux/advanced/nextcloud/22 && 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 "=======================================" diff --git a/linux/advanced/nextcloud/14/sources.list b/linux/advanced/nextcloud/14/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/14/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/advanced/nextcloud/15/sources.list b/linux/advanced/nextcloud/15/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/15/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/advanced/nextcloud/16/sources.list b/linux/advanced/nextcloud/16/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/16/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/advanced/nextcloud/17/sources.list b/linux/advanced/nextcloud/17/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/17/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/advanced/nextcloud/18/sources.list b/linux/advanced/nextcloud/18/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/18/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/advanced/nextcloud/19/sources.list b/linux/advanced/nextcloud/19/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/19/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/advanced/nextcloud/20/sources.list b/linux/advanced/nextcloud/20/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/20/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/advanced/nextcloud/21/sources.list b/linux/advanced/nextcloud/21/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/21/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/advanced/nextcloud/22/sources.list b/linux/advanced/nextcloud/22/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/22/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/advanced/nextcloud/latest/sources.list b/linux/advanced/nextcloud/latest/sources.list deleted file mode 100644 index 412c35d1a..000000000 --- a/linux/advanced/nextcloud/latest/sources.list +++ /dev/null @@ -1,19 +0,0 @@ -#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/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/14/Makefile b/linux/advanced/nextcloud/patched/14/Makefile similarity index 100% rename from linux/advanced/nextcloud/14/Makefile rename to linux/advanced/nextcloud/patched/14/Makefile diff --git a/linux/advanced/nextcloud/14/README.md b/linux/advanced/nextcloud/patched/14/README.md similarity index 100% rename from linux/advanced/nextcloud/14/README.md rename to linux/advanced/nextcloud/patched/14/README.md diff --git a/linux/advanced/nextcloud/14/Streamer.php b/linux/advanced/nextcloud/patched/14/Streamer.php similarity index 100% rename from linux/advanced/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/15/Makefile b/linux/advanced/nextcloud/patched/15/Makefile similarity index 100% rename from linux/advanced/nextcloud/15/Makefile rename to linux/advanced/nextcloud/patched/15/Makefile diff --git a/linux/advanced/nextcloud/15/README.md b/linux/advanced/nextcloud/patched/15/README.md similarity index 100% rename from linux/advanced/nextcloud/15/README.md rename to linux/advanced/nextcloud/patched/15/README.md diff --git a/linux/advanced/nextcloud/15/Streamer.php b/linux/advanced/nextcloud/patched/15/Streamer.php similarity index 100% rename from linux/advanced/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/16/Makefile b/linux/advanced/nextcloud/patched/16/Makefile similarity index 100% rename from linux/advanced/nextcloud/16/Makefile rename to linux/advanced/nextcloud/patched/16/Makefile diff --git a/linux/advanced/nextcloud/16/README.md b/linux/advanced/nextcloud/patched/16/README.md similarity index 100% rename from linux/advanced/nextcloud/16/README.md rename to linux/advanced/nextcloud/patched/16/README.md diff --git a/linux/advanced/nextcloud/16/Streamer.php b/linux/advanced/nextcloud/patched/16/Streamer.php similarity index 100% rename from linux/advanced/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/17/Makefile b/linux/advanced/nextcloud/patched/17/Makefile similarity index 100% rename from linux/advanced/nextcloud/17/Makefile rename to linux/advanced/nextcloud/patched/17/Makefile diff --git a/linux/advanced/nextcloud/17/README.md b/linux/advanced/nextcloud/patched/17/README.md similarity index 100% rename from linux/advanced/nextcloud/17/README.md rename to linux/advanced/nextcloud/patched/17/README.md diff --git a/linux/advanced/nextcloud/17/Streamer.php b/linux/advanced/nextcloud/patched/17/Streamer.php similarity index 100% rename from linux/advanced/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/18/Makefile b/linux/advanced/nextcloud/patched/18/Makefile similarity index 100% rename from linux/advanced/nextcloud/18/Makefile rename to linux/advanced/nextcloud/patched/18/Makefile diff --git a/linux/advanced/nextcloud/18/README.md b/linux/advanced/nextcloud/patched/18/README.md similarity index 100% rename from linux/advanced/nextcloud/18/README.md rename to linux/advanced/nextcloud/patched/18/README.md diff --git a/linux/advanced/nextcloud/18/Streamer.php b/linux/advanced/nextcloud/patched/18/Streamer.php similarity index 100% rename from linux/advanced/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/19/Makefile b/linux/advanced/nextcloud/patched/19/Makefile similarity index 100% rename from linux/advanced/nextcloud/19/Makefile rename to linux/advanced/nextcloud/patched/19/Makefile diff --git a/linux/advanced/nextcloud/19/README.md b/linux/advanced/nextcloud/patched/19/README.md similarity index 100% rename from linux/advanced/nextcloud/19/README.md rename to linux/advanced/nextcloud/patched/19/README.md diff --git a/linux/advanced/nextcloud/19/Streamer.php b/linux/advanced/nextcloud/patched/19/Streamer.php similarity index 100% rename from linux/advanced/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/20/Makefile b/linux/advanced/nextcloud/patched/20/Makefile similarity index 100% rename from linux/advanced/nextcloud/20/Makefile rename to linux/advanced/nextcloud/patched/20/Makefile diff --git a/linux/advanced/nextcloud/20/README.md b/linux/advanced/nextcloud/patched/20/README.md similarity index 100% rename from linux/advanced/nextcloud/20/README.md rename to linux/advanced/nextcloud/patched/20/README.md diff --git a/linux/advanced/nextcloud/20/Streamer.php b/linux/advanced/nextcloud/patched/20/Streamer.php similarity index 100% rename from linux/advanced/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/21/Makefile b/linux/advanced/nextcloud/patched/21/Makefile similarity index 100% rename from linux/advanced/nextcloud/21/Makefile rename to linux/advanced/nextcloud/patched/21/Makefile diff --git a/linux/advanced/nextcloud/21/README.md b/linux/advanced/nextcloud/patched/21/README.md similarity index 100% rename from linux/advanced/nextcloud/21/README.md rename to linux/advanced/nextcloud/patched/21/README.md diff --git a/linux/advanced/nextcloud/21/Streamer.php b/linux/advanced/nextcloud/patched/21/Streamer.php similarity index 100% rename from linux/advanced/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/22/Makefile b/linux/advanced/nextcloud/patched/22/Makefile similarity index 100% rename from linux/advanced/nextcloud/22/Makefile rename to linux/advanced/nextcloud/patched/22/Makefile diff --git a/linux/advanced/nextcloud/22/README.md b/linux/advanced/nextcloud/patched/22/README.md similarity index 100% rename from linux/advanced/nextcloud/22/README.md rename to linux/advanced/nextcloud/patched/22/README.md diff --git a/linux/advanced/nextcloud/22/Streamer.php b/linux/advanced/nextcloud/patched/22/Streamer.php similarity index 100% rename from linux/advanced/nextcloud/22/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/latest/Makefile b/linux/advanced/nextcloud/patched/latest/Makefile similarity index 100% rename from linux/advanced/nextcloud/latest/Makefile rename to linux/advanced/nextcloud/patched/latest/Makefile diff --git a/linux/advanced/nextcloud/latest/README.md b/linux/advanced/nextcloud/patched/latest/README.md similarity index 100% rename from linux/advanced/nextcloud/latest/README.md rename to linux/advanced/nextcloud/patched/latest/README.md diff --git a/linux/advanced/nextcloud/latest/Streamer.php b/linux/advanced/nextcloud/patched/latest/Streamer.php similarity index 100% rename from linux/advanced/nextcloud/latest/Streamer.php rename to linux/advanced/nextcloud/patched/latest/Streamer.php 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/14/Dockerfile b/linux/advanced/nextcloud/pure/14/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/14/Dockerfile rename to linux/advanced/nextcloud/pure/14/Dockerfile index c28f1b3c0..b505769ae 100644 --- a/linux/advanced/nextcloud/14/Dockerfile +++ b/linux/advanced/nextcloud/pure/14/Dockerfile @@ -27,7 +27,10 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping + ################################################################## # installing php repo + smbclient @@ -57,13 +60,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/14/docker-compose.yml b/linux/advanced/nextcloud/pure/14/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/14/docker-compose.yml rename to linux/advanced/nextcloud/pure/14/docker-compose.yml diff --git a/linux/advanced/nextcloud/14/smb.conf b/linux/advanced/nextcloud/pure/14/smb.conf similarity index 100% rename from linux/advanced/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/15/Dockerfile b/linux/advanced/nextcloud/pure/15/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/15/Dockerfile rename to linux/advanced/nextcloud/pure/15/Dockerfile index 3ccf2cadb..343a7a71f 100644 --- a/linux/advanced/nextcloud/15/Dockerfile +++ b/linux/advanced/nextcloud/pure/15/Dockerfile @@ -27,7 +27,10 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping + ################################################################## # installing php repo + smbclient @@ -57,13 +60,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/15/docker-compose.yml b/linux/advanced/nextcloud/pure/15/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/15/docker-compose.yml rename to linux/advanced/nextcloud/pure/15/docker-compose.yml diff --git a/linux/advanced/nextcloud/15/smb.conf b/linux/advanced/nextcloud/pure/15/smb.conf similarity index 100% rename from linux/advanced/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/16/Dockerfile b/linux/advanced/nextcloud/pure/16/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/16/Dockerfile rename to linux/advanced/nextcloud/pure/16/Dockerfile index 56d778f3c..b96e667f2 100644 --- a/linux/advanced/nextcloud/16/Dockerfile +++ b/linux/advanced/nextcloud/pure/16/Dockerfile @@ -27,7 +27,10 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping + ################################################################## # installing php repo + smbclient @@ -57,13 +60,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/16/docker-compose.yml b/linux/advanced/nextcloud/pure/16/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/16/docker-compose.yml rename to linux/advanced/nextcloud/pure/16/docker-compose.yml diff --git a/linux/advanced/nextcloud/16/smb.conf b/linux/advanced/nextcloud/pure/16/smb.conf similarity index 100% rename from linux/advanced/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/17/Dockerfile b/linux/advanced/nextcloud/pure/17/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/17/Dockerfile rename to linux/advanced/nextcloud/pure/17/Dockerfile index d8615bb38..05fb0013c 100644 --- a/linux/advanced/nextcloud/17/Dockerfile +++ b/linux/advanced/nextcloud/pure/17/Dockerfile @@ -27,7 +27,10 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping + ################################################################## # installing php repo + smbclient @@ -57,13 +60,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/17/docker-compose.yml b/linux/advanced/nextcloud/pure/17/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/17/docker-compose.yml rename to linux/advanced/nextcloud/pure/17/docker-compose.yml diff --git a/linux/advanced/nextcloud/17/smb.conf b/linux/advanced/nextcloud/pure/17/smb.conf similarity index 100% rename from linux/advanced/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/18/Dockerfile b/linux/advanced/nextcloud/pure/18/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/18/Dockerfile rename to linux/advanced/nextcloud/pure/18/Dockerfile index 99d9e87b2..aed264e6c 100644 --- a/linux/advanced/nextcloud/18/Dockerfile +++ b/linux/advanced/nextcloud/pure/18/Dockerfile @@ -27,7 +27,10 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping + ################################################################## # installing php repo + smbclient @@ -57,13 +60,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/18/docker-compose.yml b/linux/advanced/nextcloud/pure/18/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/18/docker-compose.yml rename to linux/advanced/nextcloud/pure/18/docker-compose.yml diff --git a/linux/advanced/nextcloud/18/smb.conf b/linux/advanced/nextcloud/pure/18/smb.conf similarity index 100% rename from linux/advanced/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/19/Dockerfile b/linux/advanced/nextcloud/pure/19/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/19/Dockerfile rename to linux/advanced/nextcloud/pure/19/Dockerfile index 91f561a60..f84a8408b 100644 --- a/linux/advanced/nextcloud/19/Dockerfile +++ b/linux/advanced/nextcloud/pure/19/Dockerfile @@ -27,7 +27,10 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping + ################################################################## # installing php repo + smbclient @@ -57,13 +60,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/19/docker-compose.yml b/linux/advanced/nextcloud/pure/19/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/19/docker-compose.yml rename to linux/advanced/nextcloud/pure/19/docker-compose.yml diff --git a/linux/advanced/nextcloud/19/smb.conf b/linux/advanced/nextcloud/pure/19/smb.conf similarity index 100% rename from linux/advanced/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/20/Dockerfile b/linux/advanced/nextcloud/pure/20/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/20/Dockerfile rename to linux/advanced/nextcloud/pure/20/Dockerfile index 885ad87a5..911405757 100644 --- a/linux/advanced/nextcloud/20/Dockerfile +++ b/linux/advanced/nextcloud/pure/20/Dockerfile @@ -27,7 +27,10 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping + ################################################################## # installing php repo + smbclient @@ -57,13 +60,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/20/docker-compose.yml b/linux/advanced/nextcloud/pure/20/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/20/docker-compose.yml rename to linux/advanced/nextcloud/pure/20/docker-compose.yml diff --git a/linux/advanced/nextcloud/20/smb.conf b/linux/advanced/nextcloud/pure/20/smb.conf similarity index 100% rename from linux/advanced/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/21/Dockerfile b/linux/advanced/nextcloud/pure/21/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/21/Dockerfile rename to linux/advanced/nextcloud/pure/21/Dockerfile index 7179f8788..487bdf09f 100644 --- a/linux/advanced/nextcloud/21/Dockerfile +++ b/linux/advanced/nextcloud/pure/21/Dockerfile @@ -27,7 +27,10 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping + ################################################################## # installing php repo + smbclient @@ -57,13 +60,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/21/docker-compose.yml b/linux/advanced/nextcloud/pure/21/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/21/docker-compose.yml rename to linux/advanced/nextcloud/pure/21/docker-compose.yml diff --git a/linux/advanced/nextcloud/21/smb.conf b/linux/advanced/nextcloud/pure/21/smb.conf similarity index 100% rename from linux/advanced/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/22/Dockerfile b/linux/advanced/nextcloud/pure/22/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/22/Dockerfile rename to linux/advanced/nextcloud/pure/22/Dockerfile index fc7580117..8c659bbe9 100644 --- a/linux/advanced/nextcloud/22/Dockerfile +++ b/linux/advanced/nextcloud/pure/22/Dockerfile @@ -27,7 +27,10 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping + ################################################################## # installing php repo + smbclient @@ -57,13 +60,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/22/docker-compose.yml b/linux/advanced/nextcloud/pure/22/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/22/docker-compose.yml rename to linux/advanced/nextcloud/pure/22/docker-compose.yml diff --git a/linux/advanced/nextcloud/22/smb.conf b/linux/advanced/nextcloud/pure/22/smb.conf similarity index 100% rename from linux/advanced/nextcloud/22/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/latest/Dockerfile b/linux/advanced/nextcloud/pure/latest/Dockerfile similarity index 84% rename from linux/advanced/nextcloud/latest/Dockerfile rename to linux/advanced/nextcloud/pure/latest/Dockerfile index 6961dd270..2a74db95c 100644 --- a/linux/advanced/nextcloud/latest/Dockerfile +++ b/linux/advanced/nextcloud/pure/latest/Dockerfile @@ -27,7 +27,9 @@ RUN apt update -y && \ sqlite3 \ smbclient \ libsmbclient \ - wget + wget \ + net-tools \ + iputils-ping ################################################################## # installing php repo + smbclient @@ -57,13 +59,6 @@ RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ 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 ################################################################## 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/latest/docker-compose.yml b/linux/advanced/nextcloud/pure/latest/docker-compose.yml similarity index 100% rename from linux/advanced/nextcloud/latest/docker-compose.yml rename to linux/advanced/nextcloud/pure/latest/docker-compose.yml diff --git a/linux/advanced/nextcloud/latest/smb.conf b/linux/advanced/nextcloud/pure/latest/smb.conf similarity index 100% rename from linux/advanced/nextcloud/latest/smb.conf rename to linux/advanced/nextcloud/pure/latest/smb.conf 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 From 20948869184c6cf059aa5cb1ccef188dd1f681b9 Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 4 Nov 2021 13:51:10 +0300 Subject: [PATCH 125/144] jira images update --- .../ecosystem/atlassian/jira/7/7.0.0/Makefile | 16 +++- .../atlassian/jira/7/7.0.0/docker-compose.yml | 2 +- .../atlassian/jira/7/7.0.10/Makefile | 16 +++- .../jira/7/7.0.10/docker-compose.yml | 2 +- .../atlassian/jira/7/7.0.11/Makefile | 16 +++- .../jira/7/7.0.11/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.0.2/Makefile | 16 +++- .../atlassian/jira/7/7.0.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.0.4/Makefile | 16 +++- .../atlassian/jira/7/7.0.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.0.5/Makefile | 16 +++- .../atlassian/jira/7/7.0.5/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.1.0/Makefile | 16 +++- .../atlassian/jira/7/7.1.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.1.1/Makefile | 16 +++- .../atlassian/jira/7/7.1.1/docker-compose.yml | 2 +- .../atlassian/jira/7/7.1.10/Makefile | 16 +++- .../jira/7/7.1.10/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.1.2/Makefile | 16 +++- .../atlassian/jira/7/7.1.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.1.4/Makefile | 16 +++- .../atlassian/jira/7/7.1.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.1.6/Makefile | 16 +++- .../atlassian/jira/7/7.1.6/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.1.7/Makefile | 16 +++- .../atlassian/jira/7/7.1.7/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.1.8/Makefile | 16 +++- .../atlassian/jira/7/7.1.8/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.1.9/Makefile | 16 +++- .../atlassian/jira/7/7.1.9/docker-compose.yml | 2 +- .../atlassian/jira/7/7.10.0/Makefile | 16 +++- .../jira/7/7.10.0/docker-compose.yml | 2 +- .../atlassian/jira/7/7.10.1/Makefile | 16 +++- .../jira/7/7.10.1/docker-compose.yml | 2 +- .../atlassian/jira/7/7.10.2/Makefile | 16 +++- .../jira/7/7.10.2/docker-compose.yml | 2 +- .../atlassian/jira/7/7.11.0/Makefile | 16 +++- .../jira/7/7.11.0/docker-compose.yml | 2 +- .../atlassian/jira/7/7.11.1/Makefile | 16 +++- .../jira/7/7.11.1/docker-compose.yml | 2 +- .../atlassian/jira/7/7.11.2/Makefile | 16 +++- .../jira/7/7.11.2/docker-compose.yml | 2 +- .../atlassian/jira/7/7.12.0/Makefile | 16 +++- .../jira/7/7.12.0/docker-compose.yml | 2 +- .../atlassian/jira/7/7.12.1/Makefile | 16 +++- .../jira/7/7.12.1/docker-compose.yml | 2 +- .../atlassian/jira/7/7.12.3/Makefile | 16 +++- .../jira/7/7.12.3/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.0/Makefile | 16 +++- .../jira/7/7.13.0/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.1/Makefile | 16 +++- .../jira/7/7.13.1/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.11/Makefile | 16 +++- .../jira/7/7.13.11/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.12/Makefile | 16 +++- .../jira/7/7.13.12/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.13/Makefile | 16 +++- .../jira/7/7.13.13/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.14/Makefile | 16 +++- .../jira/7/7.13.14/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.15/Makefile | 16 +++- .../jira/7/7.13.15/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.16/Makefile | 16 +++- .../jira/7/7.13.16/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.17/Makefile | 16 +++- .../jira/7/7.13.17/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.18/Makefile | 16 +++- .../jira/7/7.13.18/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.2/Makefile | 16 +++- .../jira/7/7.13.2/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.3/Makefile | 16 +++- .../jira/7/7.13.3/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.4/Makefile | 16 +++- .../jira/7/7.13.4/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.5/Makefile | 16 +++- .../jira/7/7.13.5/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.6/Makefile | 16 +++- .../jira/7/7.13.6/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.8/Makefile | 16 +++- .../jira/7/7.13.8/docker-compose.yml | 2 +- .../atlassian/jira/7/7.13.9/Makefile | 16 +++- .../jira/7/7.13.9/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.2.0/Makefile | 16 +++- .../atlassian/jira/7/7.2.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.2.1/Makefile | 16 +++- .../atlassian/jira/7/7.2.1/docker-compose.yml | 2 +- .../atlassian/jira/7/7.2.10/Makefile | 16 +++- .../jira/7/7.2.10/docker-compose.yml | 2 +- .../atlassian/jira/7/7.2.11/Makefile | 16 +++- .../jira/7/7.2.11/docker-compose.yml | 2 +- .../atlassian/jira/7/7.2.12/Makefile | 16 +++- .../jira/7/7.2.12/docker-compose.yml | 2 +- .../atlassian/jira/7/7.2.13/Makefile | 16 +++- .../jira/7/7.2.13/docker-compose.yml | 2 +- .../atlassian/jira/7/7.2.14/Makefile | 16 +++- .../jira/7/7.2.14/docker-compose.yml | 2 +- .../atlassian/jira/7/7.2.15/Makefile | 16 +++- .../jira/7/7.2.15/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.2.2/Makefile | 16 +++- .../atlassian/jira/7/7.2.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.2.3/Makefile | 16 +++- .../atlassian/jira/7/7.2.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.2.4/Makefile | 16 +++- .../atlassian/jira/7/7.2.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.2.6/Makefile | 16 +++- .../atlassian/jira/7/7.2.6/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.2.7/Makefile | 16 +++- .../atlassian/jira/7/7.2.7/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.2.8/Makefile | 16 +++- .../atlassian/jira/7/7.2.8/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.2.9/Makefile | 16 +++- .../atlassian/jira/7/7.2.9/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.0/Makefile | 16 +++- .../atlassian/jira/7/7.3.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.1/Makefile | 16 +++- .../atlassian/jira/7/7.3.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.2/Makefile | 16 +++- .../atlassian/jira/7/7.3.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.3/Makefile | 16 +++- .../atlassian/jira/7/7.3.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.4/Makefile | 16 +++- .../atlassian/jira/7/7.3.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.5/Makefile | 16 +++- .../atlassian/jira/7/7.3.5/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.6/Makefile | 16 +++- .../atlassian/jira/7/7.3.6/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.7/Makefile | 16 +++- .../atlassian/jira/7/7.3.7/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.8/Makefile | 16 +++- .../atlassian/jira/7/7.3.8/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.3.9/Makefile | 16 +++- .../atlassian/jira/7/7.3.9/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.4.0/Makefile | 16 +++- .../atlassian/jira/7/7.4.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.4.1/Makefile | 16 +++- .../atlassian/jira/7/7.4.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.4.2/Makefile | 16 +++- .../atlassian/jira/7/7.4.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.4.3/Makefile | 16 +++- .../atlassian/jira/7/7.4.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.4.4/Makefile | 16 +++- .../atlassian/jira/7/7.4.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.4.5/Makefile | 16 +++- .../atlassian/jira/7/7.4.5/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.4.6/Makefile | 16 +++- .../atlassian/jira/7/7.4.6/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.5.0/Makefile | 16 +++- .../atlassian/jira/7/7.5.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.5.1/Makefile | 16 +++- .../atlassian/jira/7/7.5.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.5.2/Makefile | 16 +++- .../atlassian/jira/7/7.5.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.5.3/Makefile | 16 +++- .../atlassian/jira/7/7.5.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.5.4/Makefile | 16 +++- .../atlassian/jira/7/7.5.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.6.0/Makefile | 16 +++- .../atlassian/jira/7/7.6.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.6.1/Makefile | 16 +++- .../atlassian/jira/7/7.6.1/docker-compose.yml | 2 +- .../atlassian/jira/7/7.6.10/Makefile | 16 +++- .../jira/7/7.6.10/docker-compose.yml | 2 +- .../atlassian/jira/7/7.6.11/Makefile | 16 +++- .../jira/7/7.6.11/docker-compose.yml | 2 +- .../atlassian/jira/7/7.6.12/Makefile | 16 +++- .../jira/7/7.6.12/docker-compose.yml | 2 +- .../atlassian/jira/7/7.6.13/Makefile | 16 +++- .../jira/7/7.6.13/docker-compose.yml | 2 +- .../atlassian/jira/7/7.6.14/Makefile | 16 +++- .../jira/7/7.6.14/docker-compose.yml | 2 +- .../atlassian/jira/7/7.6.15/Makefile | 16 +++- .../jira/7/7.6.15/docker-compose.yml | 2 +- .../atlassian/jira/7/7.6.16/Makefile | 16 +++- .../jira/7/7.6.16/docker-compose.yml | 2 +- .../atlassian/jira/7/7.6.17/Makefile | 16 +++- .../jira/7/7.6.17/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.6.2/Makefile | 16 +++- .../atlassian/jira/7/7.6.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.6.3/Makefile | 16 +++- .../atlassian/jira/7/7.6.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.6.4/Makefile | 16 +++- .../atlassian/jira/7/7.6.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.6.6/Makefile | 16 +++- .../atlassian/jira/7/7.6.6/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.6.7/Makefile | 16 +++- .../atlassian/jira/7/7.6.7/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.6.8/Makefile | 16 +++- .../atlassian/jira/7/7.6.8/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.6.9/Makefile | 16 +++- .../atlassian/jira/7/7.6.9/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.7.0/Makefile | 16 +++- .../atlassian/jira/7/7.7.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.7.1/Makefile | 16 +++- .../atlassian/jira/7/7.7.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.7.2/Makefile | 16 +++- .../atlassian/jira/7/7.7.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.7.4/Makefile | 16 +++- .../atlassian/jira/7/7.7.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.8.0/Makefile | 16 +++- .../atlassian/jira/7/7.8.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.8.1/Makefile | 16 +++- .../atlassian/jira/7/7.8.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.8.2/Makefile | 16 +++- .../atlassian/jira/7/7.8.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.8.4/Makefile | 16 +++- .../atlassian/jira/7/7.8.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.9.0/Makefile | 16 +++- .../atlassian/jira/7/7.9.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/7/7.9.2/Makefile | 16 +++- .../atlassian/jira/7/7.9.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.0.0/Makefile | 16 +++- .../atlassian/jira/8/8.0.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.0.2/Makefile | 16 +++- .../atlassian/jira/8/8.0.2/docker-compose.yml | 3 +- .../ecosystem/atlassian/jira/8/8.0.3/Makefile | 16 +++- .../atlassian/jira/8/8.0.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.1.0/Makefile | 16 +++- .../atlassian/jira/8/8.1.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.1.1/Makefile | 16 +++- .../atlassian/jira/8/8.1.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.1.2/Makefile | 16 +++- .../atlassian/jira/8/8.1.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.1.3/Makefile | 16 +++- .../atlassian/jira/8/8.1.3/docker-compose.yml | 2 +- .../atlassian/jira/8/8.10.0/Makefile | 16 +++- .../jira/8/8.10.0/docker-compose.yml | 2 +- .../atlassian/jira/8/8.10.1/Makefile | 16 +++- .../jira/8/8.10.1/docker-compose.yml | 2 +- .../atlassian/jira/8/8.11.0/Makefile | 16 +++- .../jira/8/8.11.0/docker-compose.yml | 2 +- .../atlassian/jira/8/8.11.1/Makefile | 16 +++- .../jira/8/8.11.1/docker-compose.yml | 2 +- .../atlassian/jira/8/8.12.0/Makefile | 16 +++- .../jira/8/8.12.0/docker-compose.yml | 2 +- .../atlassian/jira/8/8.12.1/Makefile | 16 +++- .../jira/8/8.12.1/docker-compose.yml | 2 +- .../atlassian/jira/8/8.12.2/Makefile | 16 +++- .../jira/8/8.12.2/docker-compose.yml | 2 +- .../atlassian/jira/8/8.12.3/Makefile | 16 +++- .../jira/8/8.12.3/docker-compose.yml | 2 +- .../atlassian/jira/8/8.13.0/Makefile | 16 +++- .../jira/8/8.13.0/docker-compose.yml | 2 +- .../atlassian/jira/8/8.13.1/Makefile | 16 +++- .../jira/8/8.13.1/docker-compose.yml | 2 +- linux/ecosystem/atlassian/jira/8/8.13.10/.env | 3 + .../atlassian/jira/8/8.13.10/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.13.10/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.13.10/Makefile | 19 ++++ .../jira/8/8.13.10/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.13.10/entrypoint.sh | 89 ++++++++++++++++++ linux/ecosystem/atlassian/jira/8/8.13.11/.env | 3 + .../atlassian/jira/8/8.13.11/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.13.11/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.13.11/Makefile | 19 ++++ .../jira/8/8.13.11/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.13.11/entrypoint.sh | 89 ++++++++++++++++++ linux/ecosystem/atlassian/jira/8/8.13.12/.env | 3 + .../atlassian/jira/8/8.13.12/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.13.12/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.13.12/Makefile | 19 ++++ .../jira/8/8.13.12/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.13.12/entrypoint.sh | 89 ++++++++++++++++++ linux/ecosystem/atlassian/jira/8/8.13.13/.env | 3 + .../atlassian/jira/8/8.13.13/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.13.13/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.13.13/Makefile | 19 ++++ .../jira/8/8.13.13/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.13.13/entrypoint.sh | 89 ++++++++++++++++++ .../atlassian/jira/8/8.13.2/Makefile | 16 +++- .../jira/8/8.13.2/docker-compose.yml | 2 +- .../atlassian/jira/8/8.13.3/Makefile | 16 +++- .../jira/8/8.13.3/docker-compose.yml | 2 +- .../atlassian/jira/8/8.13.4/Makefile | 16 +++- .../jira/8/8.13.4/docker-compose.yml | 2 +- .../atlassian/jira/8/8.13.5/Makefile | 16 +++- .../jira/8/8.13.5/docker-compose.yml | 2 +- .../atlassian/jira/8/8.13.6/Makefile | 16 +++- .../jira/8/8.13.6/docker-compose.yml | 2 +- .../atlassian/jira/8/8.13.7/Makefile | 16 +++- .../jira/8/8.13.7/docker-compose.yml | 2 +- .../atlassian/jira/8/8.13.8/Makefile | 16 +++- .../jira/8/8.13.8/docker-compose.yml | 2 +- linux/ecosystem/atlassian/jira/8/8.13.9/.env | 3 + .../atlassian/jira/8/8.13.9/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.13.9/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.13.9/Makefile | 19 ++++ .../jira/8/8.13.9/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.13.9/entrypoint.sh | 89 ++++++++++++++++++ .../atlassian/jira/8/8.14.0/Makefile | 16 +++- .../jira/8/8.14.0/docker-compose.yml | 2 +- .../atlassian/jira/8/8.14.1/Makefile | 16 +++- .../jira/8/8.14.1/docker-compose.yml | 2 +- .../atlassian/jira/8/8.15.0/Makefile | 16 +++- .../jira/8/8.15.0/docker-compose.yml | 2 +- .../atlassian/jira/8/8.15.1/Makefile | 16 +++- .../jira/8/8.15.1/docker-compose.yml | 2 +- .../atlassian/jira/8/8.16.0/Makefile | 16 +++- .../jira/8/8.16.0/docker-compose.yml | 2 +- .../atlassian/jira/8/8.16.2/Makefile | 16 +++- .../jira/8/8.16.2/docker-compose.yml | 2 +- .../atlassian/jira/8/8.17.0/Makefile | 16 +++- .../jira/8/8.17.0/docker-compose.yml | 2 +- .../atlassian/jira/8/8.17.1/Makefile | 16 +++- .../jira/8/8.17.1/docker-compose.yml | 2 +- linux/ecosystem/atlassian/jira/8/8.18.1/.env | 3 + .../atlassian/jira/8/8.18.1/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.18.1/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.18.1/Makefile | 19 ++++ .../jira/8/8.18.1/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.18.1/entrypoint.sh | 89 ++++++++++++++++++ linux/ecosystem/atlassian/jira/8/8.18.2/.env | 3 + .../atlassian/jira/8/8.18.2/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.18.2/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.18.2/Makefile | 19 ++++ .../jira/8/8.18.2/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.18.2/entrypoint.sh | 89 ++++++++++++++++++ linux/ecosystem/atlassian/jira/8/8.19.0/.env | 3 + .../atlassian/jira/8/8.19.0/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.19.0/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.19.0/Makefile | 19 ++++ .../jira/8/8.19.0/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.19.0/entrypoint.sh | 89 ++++++++++++++++++ linux/ecosystem/atlassian/jira/8/8.19.1/.env | 3 + .../atlassian/jira/8/8.19.1/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.19.1/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.19.1/Makefile | 19 ++++ .../jira/8/8.19.1/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.19.1/entrypoint.sh | 89 ++++++++++++++++++ .../ecosystem/atlassian/jira/8/8.2.0/Makefile | 16 +++- .../atlassian/jira/8/8.2.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.2.1/Makefile | 16 +++- .../atlassian/jira/8/8.2.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.2.2/Makefile | 16 +++- .../atlassian/jira/8/8.2.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.2.3/Makefile | 16 +++- .../atlassian/jira/8/8.2.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.2.4/Makefile | 16 +++- .../atlassian/jira/8/8.2.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.2.5/Makefile | 16 +++- .../atlassian/jira/8/8.2.5/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.2.6/Makefile | 16 +++- .../atlassian/jira/8/8.2.6/docker-compose.yml | 2 +- linux/ecosystem/atlassian/jira/8/8.20.0/.env | 3 + .../atlassian/jira/8/8.20.0/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.20.0/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.20.0/Makefile | 19 ++++ .../jira/8/8.20.0/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.20.0/entrypoint.sh | 89 ++++++++++++++++++ .../ecosystem/atlassian/jira/8/8.3.0/Makefile | 16 +++- .../atlassian/jira/8/8.3.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.3.1/Makefile | 16 +++- .../atlassian/jira/8/8.3.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.3.2/Makefile | 16 +++- .../atlassian/jira/8/8.3.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.3.3/Makefile | 16 +++- .../atlassian/jira/8/8.3.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.3.4/Makefile | 16 +++- .../atlassian/jira/8/8.3.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.3.5/Makefile | 16 +++- .../atlassian/jira/8/8.3.5/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.4.0/Makefile | 16 +++- .../atlassian/jira/8/8.4.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.4.1/Makefile | 16 +++- .../atlassian/jira/8/8.4.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.4.2/Makefile | 16 +++- .../atlassian/jira/8/8.4.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.4.3/Makefile | 16 +++- .../atlassian/jira/8/8.4.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.5.0/Makefile | 16 +++- .../atlassian/jira/8/8.5.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.5.1/Makefile | 16 +++- .../atlassian/jira/8/8.5.1/docker-compose.yml | 2 +- .../atlassian/jira/8/8.5.10/Makefile | 16 +++- .../jira/8/8.5.10/docker-compose.yml | 2 +- .../atlassian/jira/8/8.5.11/Makefile | 16 +++- .../jira/8/8.5.11/docker-compose.yml | 2 +- .../atlassian/jira/8/8.5.12/Makefile | 16 +++- .../jira/8/8.5.12/docker-compose.yml | 2 +- .../atlassian/jira/8/8.5.13/Makefile | 16 +++- .../jira/8/8.5.13/docker-compose.yml | 2 +- .../atlassian/jira/8/8.5.14/Makefile | 16 +++- .../jira/8/8.5.14/docker-compose.yml | 2 +- .../atlassian/jira/8/8.5.15/Makefile | 16 +++- .../jira/8/8.5.15/docker-compose.yml | 2 +- .../atlassian/jira/8/8.5.16/Makefile | 16 +++- .../jira/8/8.5.16/docker-compose.yml | 2 +- linux/ecosystem/atlassian/jira/8/8.5.17/.env | 3 + .../atlassian/jira/8/8.5.17/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.5.17/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.5.17/Makefile | 19 ++++ .../jira/8/8.5.17/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.5.17/entrypoint.sh | 89 ++++++++++++++++++ linux/ecosystem/atlassian/jira/8/8.5.18/.env | 3 + .../atlassian/jira/8/8.5.18/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.5.18/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.5.18/Makefile | 19 ++++ .../jira/8/8.5.18/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.5.18/entrypoint.sh | 89 ++++++++++++++++++ linux/ecosystem/atlassian/jira/8/8.5.19/.env | 3 + .../atlassian/jira/8/8.5.19/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.5.19/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.5.19/Makefile | 19 ++++ .../jira/8/8.5.19/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.5.19/entrypoint.sh | 89 ++++++++++++++++++ .../ecosystem/atlassian/jira/8/8.5.2/Makefile | 16 +++- .../atlassian/jira/8/8.5.2/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.5.3/Makefile | 16 +++- .../atlassian/jira/8/8.5.3/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.5.4/Makefile | 16 +++- .../atlassian/jira/8/8.5.4/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.5.5/Makefile | 16 +++- .../atlassian/jira/8/8.5.5/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.5.6/Makefile | 16 +++- .../atlassian/jira/8/8.5.6/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.5.7/Makefile | 16 +++- .../atlassian/jira/8/8.5.7/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.5.8/Makefile | 16 +++- .../atlassian/jira/8/8.5.8/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.5.9/Makefile | 16 +++- .../atlassian/jira/8/8.5.9/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.6.0/Makefile | 16 +++- .../atlassian/jira/8/8.6.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.6.1/Makefile | 16 +++- .../atlassian/jira/8/8.6.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.7.0/Makefile | 16 +++- .../atlassian/jira/8/8.7.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.7.1/Makefile | 16 +++- .../atlassian/jira/8/8.7.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.8.0/Makefile | 16 +++- .../atlassian/jira/8/8.8.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.8.1/Makefile | 16 +++- .../atlassian/jira/8/8.8.1/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.9.0/Makefile | 16 +++- .../atlassian/jira/8/8.9.0/docker-compose.yml | 2 +- .../ecosystem/atlassian/jira/8/8.9.1/Makefile | 16 +++- .../atlassian/jira/8/8.9.1/docker-compose.yml | 2 +- .../jira/templates/5/docker-compose.yml | 2 +- .../jira/templates/6/docker-compose.yml | 2 +- .../jira/templates/7/docker-compose.yml | 2 +- .../jira/templates/8/docker-compose.yml | 2 +- ...te_Table_JavaCommunityPost_600x2085@2x.png | Bin 0 -> 506569 bytes 441 files changed, 5807 insertions(+), 362 deletions(-) create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.10/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.10/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.10/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.10/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.10/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.10/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.11/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.11/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.11/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.11/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.11/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.11/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.12/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.12/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.12/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.12/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.12/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.12/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.13/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.13/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.13/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.13/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.13/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.13/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.9/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.9/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.9/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.9/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.9/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.13.9/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.1/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.1/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.1/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.1/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.1/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.1/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.2/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.2/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.2/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.2/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.2/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.18.2/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.0/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.0/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.0/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.0/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.0/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.0/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.1/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.1/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.1/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.1/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.1/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.19.1/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.0/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.0/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.0/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.0/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.0/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.0/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.17/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.17/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.17/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.17/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.17/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.17/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.18/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.18/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.18/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.18/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.18/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.18/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.19/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.19/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.19/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.19/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.19/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.5.19/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/templates/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png diff --git a/linux/ecosystem/atlassian/jira/7/7.0.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.0.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.0.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.0.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.10/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.10/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.0.10/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.10/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.0.10/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.0.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.11/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.11/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.0.11/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.11/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.0.11/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.0.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.0.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.0.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.0.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.0.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.0.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.0.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.0.5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.5/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.0.5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.0.5/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.0.5/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.1.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.1.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.1.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.1.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.1.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.1.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.10/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.10/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.1.10/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.10/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.1.10/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.1.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.1.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.1.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.1.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.1.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.1.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.1.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.6/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.1.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.1.6/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.1.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.7/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.1.7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.7/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.1.7/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.1.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.8/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.1.8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.8/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.1.8/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.1.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.1.9/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.9/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.1.9/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.1.9/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.1.9/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.10.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.10.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.10.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.10.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.10.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.10.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.10.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.10.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.10.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.10.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.10.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.10.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.10.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.10.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.10.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.10.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.10.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.10.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.11.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.11.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.11.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.11.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.11.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.11.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.11.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.11.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.11.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.11.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.11.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.11.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.11.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.11.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.11.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.11.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.11.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.11.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.12.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.12.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.12.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.12.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.12.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.12.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.12.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.12.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.12.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.12.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.12.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.12.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.12.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.12.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.12.3/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.12.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.12.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.12.3/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.11/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.11/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.11/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.11/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.11/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.12/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.12/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.12/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.12/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.12/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.12/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.13/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.13/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.13/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.13/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.13/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.13/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.14/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.14/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.14/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.14/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.14/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.14/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.15/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.15/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.15/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.15/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.15/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.15/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.16/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.16/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.16/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.16/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.16/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.16/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.17/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.17/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.17/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.17/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.17/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.17/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.18/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.18/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.18/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.18/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.18/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.18/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.3/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.3/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.5/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.5/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.5/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.6/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.6/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.8/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.8/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.8/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.13.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.13.9/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.9/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.13.9/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.13.9/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.13.9/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.10/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.10/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.10/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.10/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.10/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.11/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.11/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.11/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.11/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.11/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.12/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.12/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.12/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.12/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.12/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.12/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.13/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.13/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.13/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.13/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.13/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.13/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.14/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.14/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.14/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.14/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.14/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.14/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.15/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.15/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.15/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.15/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.15/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.15/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.3/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.3/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.6/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.6/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.7/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.7/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.7/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.8/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.8/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.8/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.2.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.2.9/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.9/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.2.9/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.2.9/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.2.9/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.3/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.3/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.5/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.5/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.5/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.6/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.6/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.7/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.7/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.7/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.8/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.8/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.8/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.3.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.3.9/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.9/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.3.9/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.3.9/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.3.9/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.4.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.4.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.4.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.4.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.4.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.4.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.3/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.4.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.4.3/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.4.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.4.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.5/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.5/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.4.5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.5/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.4.5/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.4.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.4.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.6/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.4.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.4.6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.4.6/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.5.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.5.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.5.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.5.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.5.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.5.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.3/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.5.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.5.3/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.5.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.5.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.5.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.5.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.5.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.10/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.10/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.10/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.10/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.10/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.10/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.11/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.11/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.11/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.11/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.11/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.11/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.12/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.12/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.12/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.12/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.12/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.12/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.13/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.13/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.13/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.13/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.13/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.13/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.14/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.14/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.14/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.14/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.14/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.14/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.15/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.15/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.15/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.15/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.15/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.15/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.16/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.16/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.16/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.16/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.16/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.16/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.17/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.17/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.17/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.17/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.17/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.17/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.3/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.3/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.3/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.6/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.6/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.6/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.7/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.7/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.7/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.7/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.8/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.8/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.8/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.8/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.6.9/Makefile b/linux/ecosystem/atlassian/jira/7/7.6.9/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.9/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.6.9/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.6.9/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.6.9/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.7.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.7.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.7.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.7.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.7.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.7.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.7.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.7.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.7.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.7.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.7.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.7.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.7.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.7.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.7.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.7.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.7.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.7.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.7.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.7.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.7.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.8.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.8.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.8.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.8.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.8.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.8.1/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.8.1/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.8.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.8.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.8.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.8.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.8.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.8.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.8.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.8.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.8.4/Makefile b/linux/ecosystem/atlassian/jira/7/7.8.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.8.4/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.8.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.8.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.8.4/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.9.0/Makefile b/linux/ecosystem/atlassian/jira/7/7.9.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.9.0/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.9.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.9.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.9.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/7/7.9.2/Makefile b/linux/ecosystem/atlassian/jira/7/7.9.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/7/7.9.2/Makefile +++ b/linux/ecosystem/atlassian/jira/7/7.9.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/7/7.9.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/7/7.9.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.0.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.0.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.0.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.0.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/8/8.0.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.0.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.0.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.0.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.0.2/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.0.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..ed71c1649 100644 --- a/linux/ecosystem/atlassian/jira/8/8.0.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.0.2/docker-compose.yml @@ -6,4 +6,5 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} + diff --git a/linux/ecosystem/atlassian/jira/8/8.0.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.0.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.0.3/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.0.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/8/8.0.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.0.3/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.1.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.1.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.1.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/8/8.1.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.1.0/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.1.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.1.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.1.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/8/8.1.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.1.1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.1.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.1.2/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.1.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/8/8.1.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.1.2/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.1.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.1.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.1.3/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.1.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/8/8.1.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.1.3/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.10.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.10.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.10.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.10.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.10.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.10.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.10.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.10.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.10.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.10.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.10.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.10.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.11.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.11.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.11.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.11.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.11.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.11.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.11.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.11.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.11.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.11.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.11.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.11.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.12.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.12.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.12.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.12.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.12.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.12.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.12.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.12.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.12.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.12.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.12.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.12.2/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.12.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.12.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.12.2/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.12.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.12.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.12.3/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.12.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.12.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.12.3/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.13.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.13.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.13.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.13.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} 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 100644 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 100644 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 100644 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 100644 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/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.2/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.13.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.13.2/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.3/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.13.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.13.3/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.4/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.13.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.13.4/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.5/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.13.5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.5/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.13.5/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.6/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.6/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.13.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.13.6/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.7/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.7/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.13.7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.7/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.13.7/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.13.8/Makefile b/linux/ecosystem/atlassian/jira/8/8.13.8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.8/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.13.8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.13.8/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.13.8/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} 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 100644 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/Makefile b/linux/ecosystem/atlassian/jira/8/8.14.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.14.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.14.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.14.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.14.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.14.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.14.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.14.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.14.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.14.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.14.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.15.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.15.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.15.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.15.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.15.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.15.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.15.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.15.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.15.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.15.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.15.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.15.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.16.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.16.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.16.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.16.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.16.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.16.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.16.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.16.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.16.2/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.16.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.16.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.16.2/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.17.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.17.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.17.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.17.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.17.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.17.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.17.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.17.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.17.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.17.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.17.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.17.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} 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 100644 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 100644 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 100644 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 100644 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/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.2.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.2.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.2.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.2.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.2/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.2.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.2.2/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.3/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.2.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.2.3/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.4/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.2.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.2.4/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.5/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.2.5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.5/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.2.5/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.2.6/Makefile b/linux/ecosystem/atlassian/jira/8/8.2.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.6/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.2.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.2.6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.2.6/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} 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 100644 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.3.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.3.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.3.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.3.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.3.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.2/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.3.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.3.2/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.3/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.3.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.3.3/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.4/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.3.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.3.4/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.3.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.3.5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.5/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.3.5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.3.5/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.3.5/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.4.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.4.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.4.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.4.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.4.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.4.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.4.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.4.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.4.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.4.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.4.2/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.4.2/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.4.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.4.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.4.2/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.4.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.4.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.4.3/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.4.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.4.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.4.3/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.10/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.10/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.10/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.10/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.10/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.10/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.11/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.11/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.11/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.11/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.11/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.11/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.12/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.12/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.12/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.12/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.12/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.12/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.13/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.13/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.13/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.13/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.13/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.13/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.14/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.14/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.14/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.14/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.14/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.14/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.15/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.15/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.15/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.15/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.15/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.15/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.16/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.16/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.16/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.16/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.16/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.16/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} 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 100644 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 100644 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 100644 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/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.2/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.2/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.2/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.2/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.2/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.3/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.3/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.3/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.3/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.3/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.3/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.4/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.4/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.4/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.4/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.4/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.4/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.5/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.5/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.5/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.5/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.5/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.5/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.6/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.6/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.6/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.6/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.6/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.7/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.7/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.7/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.7/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.7/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.7/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.8/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.8/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.8/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.8/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.8/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.8/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.5.9/Makefile b/linux/ecosystem/atlassian/jira/8/8.5.9/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.9/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.5.9/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.5.9/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.5.9/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.6.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.6.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.6.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.6.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.6.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.6.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.6.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.6.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.6.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.6.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.6.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.6.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.7.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.7.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.7.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.7.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.7.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.7.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.7.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.7.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.7.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.7.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.7.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.7.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.8.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.8.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.8.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.8.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.8.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.8.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.8.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.8.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.8.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.8.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.8.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.8.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.9.0/Makefile b/linux/ecosystem/atlassian/jira/8/8.9.0/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.9.0/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.9.0/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.9.0/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.9.0/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/8/8.9.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.9.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.9.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.9.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.9.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.9.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/5/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/5/docker-compose.yml index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/templates/5/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/templates/5/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/6/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/6/docker-compose.yml index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/templates/6/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/templates/6/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/7/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/7/docker-compose.yml index 4269f77ac..61ae14071 100644 --- a/linux/ecosystem/atlassian/jira/templates/7/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/templates/7/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/8/docker-compose.yml b/linux/ecosystem/atlassian/jira/templates/8/docker-compose.yml index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/templates/8/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/templates/8/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} diff --git a/linux/ecosystem/atlassian/jira/templates/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png b/linux/ecosystem/atlassian/jira/templates/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8e9d614221d2ac59a81bdd4d52b6f74aaf06e5c1 GIT binary patch literal 506569 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

UhEYX>=LdWKdHU%OXh@}2pya3RE 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 z


(Q!~hx^J%e%fQgzwf3INYK|>PmYyT!^8}Hp&$=Ip5`+MZYK!LbtLvc1W6;`?DxyY> zFXQi&(D&THhpFPnjVQKvQl-)CI6tl{u}lMfZUDmLeevYu$-~*0$DH&43id~!XAcZb zB#-EL{+(?x+}a6k7ronGB(dhaI|Hg<%+hG~Go`0aPbF_w*V%+jyv(y;*4X%wB8MF6+O=--MX_d~s9kWon?1jEcKtoDh4j4S@5}zs^;PVkL+kM& zJdyA=;@^K4ORiwsrfjGl5!g&CD;ecu_z#K@k8AotP(S9%l~eCt-B>KveiJaeuy=Gt z!VUUy*_9@=WY1{D`FS4Jc++u9i%Pf-W7(@duUzYUc=&7D=&U6XI3I0f1}Xs}ABa@Y znu7|)1jZy(37rsOD{SC|Ip)3cdEmpH%_k+!LQrBVSZ{vp`I5@L`*xv5EmrjR^l(nQ z;}q;QVWO#f_i5YaU@?BxwQV*sszahx{Cb!J1mjSx%zqQI#RBJjKkEu=B=vzgr7TOP zm63v^-@aVPe`(rwQWqz+V3DMD0Tetz=7g0qjTj-dvhtAFXca@+?8FifHY;v-33ydC zd_YHs(;y*uD@;R(VwPO`zV<_0PVa%piVYUc!{jFh29)oeKimKuB^Lh`qV|k|Z|MNZWdS z^bk1jwX2Or4|lh#>7WJSrM?_VUKE+rW-^`Neu~8g_-~ZXIf$Q8I1qLp| zQFIA^Z~K`_CVKxEB)j5Srh~J@{@I%SLVa~lVY=B&P9N_;`=xlcFpm2#UIn`PZ74o& zO)ko=uSp#cI%fiSh}aU=YQGpZlwPgT1!=j1G0FZEk|trGGAh+rI(_LTm=|f}!c}D> z;?203J!rj84{SvK7QqRVF6U%Eh-0}Ej8YMdB^hU9q5WI`%2xVwyEmQ9w+%$f>JQy2 zt~ApC0y9f<)GZ3ZScs~{5O79(;$_rmrDofd(|5oV^n}B{qLadnizuhMyOG3uzVan8 zZ=J1?;zu4&hYF_yAj%s3i?VdM#MOl9;4R1HxlSJa^&I}^qH3sSJttNirx+k0vP9zZ zcapAK+RPHV5pyJ&OOxo0M%g3mX_EQvyFS&DfCZm3PS=D$DGH+kz$o&{^q(>dy|lo% z@!WGfc&{ToaGATyquzq$28V0jc@cj~xB}3~Ca3?NPC2VUd0Y=Eh!BMc4-G`r(;0NT zr*F6*iUQ4u{PiLB>4XX1b-o1-1E(jzv;W9W@(s5eGlc!e3VG7B75{MNvRVe{m5x0> zv+G1P8h(M^FHLoMGIX%z-Cs>$XA%0hvp9~prJ=78(+C8F)vFtd+MILvTy3faE_4UX zI0y8d|66C-8q~|8vN(lBa!_bL3kZl}bg{rkE#Q3u-Uw1n1}Wrkz%Lu?l*TShUS9?m z^;N}jHG!u5{4ICO4Kapv2kTXw37^ryrjgZO+&~VA&k}(mY z?|3xKyu#*z;l`uJuqYQ={_a>6n|LFe#a~2i@EP{T&hL#wz$#3$@RDWes>e!Sg&a z5L8-@ef~=9ugW`I;5MMFdXW0ONTr#`OMqRH`${gx6HGdxueI$q6l~JQT)R0Vm0#ub z>*}XZBQT5}jlvk%E%+E+zFnM>q6CSIOqbct$2CPtt_$#5U_zl8c%8!!V}O&jN-KrZ zB+_N;i9s`+X2c|&1E275Wm%E5HGsKxht!AvH zWk(=p5k!}Oe*W=#U%2;37)}u@ zdFwfPvT^=|oXd0c21sd5^W@6e<<=3yR{^oMk=pbT>7+sW0aZAxiUXzZYv<%uQtKTS zi195W&dLP&)N)NE+?&fqQP?`XWePXt&%dxe1#=CL?jhj{?-jKvcNLd! zkon_0*gxqfD+8VSfFWlDkRuyrK>^t--wXBl0SLh!GAARCUaE7+fsYaPi5_p~8MkST zBTk3NRFI)Y6uWkKMr3+Mb~%Y1n!`(JrSfU!2+BfD%<0JDN4Nr>%nI}qPROI|hvj)_ zCms<`XuknS)=zQm-;FKS+{c-iT2!ja=!SOZ^M`4Dn zOgTMSKNWvq8=ZE`a3u8AaP^6T`q(Y5fy6N*jVl&IXC&ISH-1$qw8SHG^bL{L!*u)+ zrxUd@y~SHi!o)f}$m-@}hm)Q>%)FX40TorSd|N7bZ^;lVvII0t|60_(_mNWEg>yUf ziDGNOq+OLVB8J3V;_z01o&w6w7zhtspx!r}z+|IGC(JHfBb$zN8*wO)FBqn0Vuk8u z2W^#Y3t&Jtdy6b7LT;we#9f>+E4Sp)--2CRL>UrnZ%VIgF2@|czX~jHo2NYScv(C9 zf3yHj9)j>z4+LBVIK%)aCobfLQ$P+y)c^Q6as9wMxRnWPsL_O<8vy^z)}25A7t#9e zE-OI&7K`ld=i0=c$C|TUa!4=)g2DdMEL3w1{9xK4LN)jdSXreMUYZc>FMOngkWh9z z`k$jXrLUF9w$D+eLDe5IUcyiblg*Sm4v2ui9i$ALn=+q5$odFbwSS{V3J(#!?bAFB zru;Lc3exV1uD^Ntt|hawddGn zSp(&>=c8hI<0>d3M4)o2k4@j!0elC1OAJ;EoJX;Vs4dE1=vwFzb>`owlGi@&6>2U`Kr1{dZqvSQwFH6{DXxaF504 zG=v;)s*wEH0;Y|5I7~ULKi-HSrv@xWwnw(Bz{K&*x62AT&k`*Omg@A_v1EEnU(dY6 zS{&c9z^l-!aX-knLi6)ZnjJBywmnGPARMsHr(F_ls2r_ePc2Y=<*^KA-l;cnkY%RM zU~}nMs*x=Q6z2Bj?D_FVdb|z~wHdj=%QdpM9ZO=pR#%$GvL+HozMwF8&r;Ve5+($RS{2L9WGst7a{>(j7R>3J(i-omusY;*s^fU6Qkp;^p zny0f){>&|FUq9nvvC#Mu;*GXm!GIj%&(Fv$0~rvblE}M+)`w{@ zs@URe*FtC*W>6_Puw+{PTQV5G^Z5oPrOpdfs(#$G@yF5$24JHDdH+?0&Ex&f(CF@5 zbBlH|&-?d!gEhofb>@-@j)+x63*#SzvUUdkU_L>n0D9+ozNRdw20dj?+ESN&Zg5cb z`GT}w21&_J6ij9kxjASBeYLjNqRZuTF~1}B&lz-qAAS!6+s!oIdK=;m^A@Fi8q4|6 zO?{{azc_(UYp<^+hG;>wj(f3kmwb_h4v*f}m(KgCo2Q>?f>sNQP3FB?M{t=K))e%C zW%=&E)COQugHAic;`ZteonI*6vGu7Z>~%~wR>4oV(Vj}V?XCEm2Hx+}v^M%*PYv9v z&RVUlbdSRCT6~rRU1tBFq@*~#PBo>iCt>)p@m0Yja69L9M^N9f;eH3u`_hUe24y&2 zA(FTyFVEiLsP=I!5j;+zAaEgs(dHmTFOSS~VZzW^K2RDX+Ko%~V~4-g(UIkX6EBbV z@5;t|fZBL}kmX|RGvzzyNNO0$paRt{<2Nr$6(ED?g9K7iDhwM&!p*xq{%s%wC&*Ob z41#V>7-g|B2noEsK#kWcQwI5+?}!91qk=rr%G)kiih~+AHqkJjwykFdx1S%JC8>*A z&yMF^N}Me&hO319HNBK{yA0Hz@%-}%N$aL~NxKA+V?dCBRD;g@hb3O0Osh=)=bF@T51Grl+K-?X#ige)}b(=3gc3sZ&UbO0wMLtqz?q@H)0noPgq6UWhOTk3~V35Au>CWM|Ov%TA^h zhpxo=-j}SnIdo|&F2kH55YKpsW{Ig4A&Q=nP@EAeJ#{+9=_VSsh@#EMQcOat zpBvX3yH!Y!{!U2}W=G$HxxQ{@c6563a1g@4D^`sjm$?GwjPi|{1oY#vODPQV0xKR- z^p$48=)>rMkJKFi^hH84BBL2}s@3{GX{ZG`_0*Ex?uj}}!w-Pf*3#`)ap?DlC`5as z@54XVb_ZRDQ@6t#IdGW8>cxV`XCLG}VB)PoD;1<#nk?@6SWp0fnvysL(KX@kgMzHc zK^d&A`_q;W7frk5zxV55KURClO^~*78lcua-k{ZRp<%=NA1&ZI6Q}(joC-eMjmut- zEx|)0xBKn8SC;CMj}Hnai$G!BcT$Ru=bO(K!T##UihgwNj+;@#LpA@q(lqbqt!xZX z$m&f|ocJqWlclzwu=NyO6ONvPKY@K{dRpbC`s{L_b}QSDW)!{}alMqf@PVV2Gdwdp zjS&hs%j;8z9}VV(-3~uE9HmtNX2m^3trvQ0{h-F(d;6APK=`bUJuel*=k4e ztC%j(XmIAReXH{Jpe9fxwxBavS?O?jX~qF*ZB-L=)EUHSIMpV;F$EY*9Eb-EO>@Fp zybq^a6}Gz2ZaT#F!@^IuF8@v!*<4mi_<5Svcxs8j-M^^4iKT7$g>|U@xW1-ew)3Rj z|H8P+*x{q4E7g%rez7J^^f{(Sus z@R#44Y<~xlubxU@snYOmFf1P3cUXY7Ae43mIfa%#Tn+2jS&!XCn+Lh|cf3$I<47H{ zhC)iPJzu+#A;Th{#GBF~CzZIO|GiUUG@X#&t&;*8NV_nYxU6AdTqZCA|KLey z&CSe=8Dhx>BOuB6{QZ%nmTFm*A)VE!#Jj&kXA4y#`H0+jV}WBs&O5%s z{2t*1)o&m%HjxJWxe$CSk{WXgMjZ>5VaIgo1P=q(XRdfk7BTsF$uefI6BTb1Wzr*6 ztT-asS?NQjx_HD`1hqKmQTZuDgx3^+BK2j`zuIm9Ar$X7Td6q(0l+dSYA3{H>Mmo6 zju#F|$Dy|n)cNMBs%f>#O85jUfCweh0*Jlf2#?q3vJoImG&6!6jIfM!nNb{GXgVZP zmWY6#kc>isJ_1E+{>qlqBc4fiR74Ahh_H-Z4@Whb;Lo!adeY(!&c)NV+*kk3k@C`V z^ui(15vqO+@j6Z}!jrPPV|^B=+Ge26@`GAU0_sWMlY*3zG4O&~&alnSoq)KsYP+BT2jv8^b@si#_`gADrLS-zNO8YZk z2QH@!F?3-o%A3_Ogrn#u(ia*bvV~1rWe`B;;~G0?kLIZD5FafYDld{XG@8-+cQDwf z&g_`jYb8W-DLC-Rd5ZIAZ484PUNJi%7)*ed)PUzE#|~yTi_n@vh+2>kXOobigV`-O z+<)x@CNeHvcWc4^{q-7>?SB#-*vcC=EJlCCV4jQp4Kbd@_P9!eo3sx=^VWKupQ8#b z2OS!^sEgh1B|R?_EiTXC30TcwyIc}eiYXw33%eo{WN*laV(0E=x$}VTOwth$A^Gz` zj7j`Y$hV$K?JQ=dHYdd{J*L07$fz?LT`B(BJg8sL|2~W!uQsEEFAKk0S~~|#mY*_d zAfh=+l@NUc!ERRxjslNbe;hPoRE-6JK~K^)Z8-G^%;utQdN|H~;ESi93N9u7{K3&s z_ubGSH%f|81r2936*_O@f*ybDe+^zbK3Y+DPHe5}NYZItaI}9Z*>M*|?Y-pHnxuX= z(w|T;D!SFu{6$ATK}+ffP)W7^uac_y4UtN;ldGe;Yahv*MUk|{tFE&-EmCOR93EWCa@1<(;dHgkIYV%*&WMYh1W<;Y z(v6v1jbVM2d_2k8Cir`Y?KB|?zS;~N&EEt z>sjCFa_)t%6<5H1h0mzyZB>p~)9!rp+T51O&FI+}>~+WPL*JwKFM*=hZol%2inING z!EV3_sG4ejh(V#eqnl5dvh;q>%rsS$QZ4)3+tI0Fjn_IIH2Tx}oLwC&uf?>4Zf zq+;}zB*wG#@;PVKYJc9y$Zdtd`+p6*sDI7PE@_IS zFhy1Z+z=5I3y`2DF$O5ManbQN5!PYQ&xG4J>ZYFdr{cJOG8bs6>#k?DsGrgbzE|9x zHxar&l>xoC?{#UIVz@o{&_&s&^WIQ3>q3hQ7Ze{Nj2be|qc;Ve?F5Akx$2XJkQti3 zY<9=VW=&@;mP<{JhR!l_aa7kQKYEV-eEa;1ArlToo(s@^tZM$>gROo^q&jmhDtWpH zM@bs^mS2n7xm%@1$yZ1hf>3Hw&zW3ka+#Ue$Lb_wls>z0aFG(+j?4>dae|+_f-<0D z-i}Y`Q4H#_<%U2gJj}|gfb;?XM?N@Tm2{mQru$6!Fz`&~F;oJj+z9shK42_2X34dx zTm3FzIp2}lVGU8jY*jJ*M%UEKQm(7VhQ@!kL(KGeMk?^?LE&)(@O z=YQvELuMIGa~}hG?=)D0o(T61YAB3kJw5*jrbo=df+%|?d{i@|l z+jzp&-k6*m=EzeYeArDe*P5&+_}#0_(J4zO0}_m8`_(+4BtcX@8jM#==U z!A$|grk>XV&zU19O&Q65rWswkV6nh+ln?j!PmEir@ zTXkCSmr^zefn>OYN#z88bzdM?wr*p&pBbxhefsehT%2=tTmH-4 zaUlJjx=5m41pao@?x>iyRY^8ukMQ5Ws1qHM)L zkS+_F1F06`)@1tNT67nFgQ9dM%9trfYB%*qhIuKIilTh$sYQ<{tA$MGt$$)QL&gEE z@&AhL;zT6U8+wr-=8rHcEJyfAsJ@oFM4s&Fg{YthrR2YUB>oqF@bi5;$gHT2|vFCjHmLS^hk zvxqUlxYy|by=Rsv&<^^Fzx4am3=|u@JwXMMMz8Btrf?t)fq+y^#nH!I`vk&d{rGQ` zC*`ResJL0+u_eI8(*Ip-+V!JLxuiy6CPJOeY?@mG#ZG)~k_uksHAS@mfE({JTLZ3p zk-u$^X?)Jw=v3z$FE}|JrBZsE9^XsBj|Cknwr(HW+p0{-uXeBMkK47NsF-+=PW{jH zcyb7eXIfhE_R`7F7bMaUvSGbIG;19Q#Oix*qwk@A5jt4yOY5#rbmG+}6cq4l^H`wi z`a;Za`H@PC;Vot)nINOy5^V`R^kXFbPndGKL-zL!cybDSA|ma9B%j_(m7Vw_y{mc> zD|Qc`Ovd!`p3t>BLW53P+KdSrB?=79BtzMy_x_|)Dyya{lI6kPnOj)BeOru;{;6J# zga?n>5S&i0T?_+jT1D6smIw=wiY8D@cT!lp*+Y||6u1~N@_D22KPkaz5UsqB?2wGW zhad=&x8h-PCURBL^d#v_9`LCGE7;DZUfL`ps? zg7}`t|12e8%wT;#_>5#|Pa9-~5m+j-vMZUr&G4!{=sX-%V0g6D{L^!UI*k#RB~;st ztT$4{!U`Y#nF|#0rYGE zh9V>;{;FKgYYb(3`PYJ46rwfi+Lmb*JnH(|068twtAi_4gBnSVDZ+w_Q{Xy~=$D4r zt(aks1w>AkuM2A8!*0)#G+Mn5s6K_lP?ZZu+4zfBEGw#>01H*^GbN#xJSk@GNG7?Q zR^NrwkQI5v8}w-rO!tgGIhVy!XGd$n!Vii%5UmhIMLQcH0z}`Ic8Ek}=F|BtTKtix zTXk;kbVq07G)J`F0b;BV&GEATDIi8VBgqt;z(;i}uWL%yS%OQ+$>MCjG*L-2pUBHk z&c(5HI+`ld4>%Yzq~V|VQp;OIf~=bV8Z=bCwY8EzJ1*w;NFm#IaBu?S_wB1zS39#| zeFyp+uWRn+7OmJ(x8^H!7ho;5glT*-ui(xbwLg{L+RP$q_NSXI1xZB6whEc4Ne2(= zFunk7Nf>q*kLBi61&_>lzC1=`1d4uBWpK zH4T@gmZ=T$9COw8IaIPQfp%^g?)6j2uU(j{W<8YMxYAvVJijxs!9P`DJK3)pqdq*` zF$v0SRXULvV*fPLGCp=mGZG5!%4hvzkypLt+`8X5q;vf?10A=7o&Sq4b5dgh6r1QD z5mU}C(`_}r5iF|@#jnk~{?i>dCc1T!RVCh(|9vyMu1e297jBZ3TC?tC@lVlmG8tTnwgK*OiU8OnmGwi?7wWEyXy3U1`5-Un1SA5_ffZ5rx zjz29y5?G3M8;Ou77t0R0fNADW5V`S9oRH*oxyR>uMy`~>YkqZ6@1vWgCpGJ}T{)K; zEstHrPkK_)jJ=oL(~Pb!cb5YkZoC(qeD_=kxb)m26ZL1t8h39_A88{yDKK4^IGdUd zX9c49KvY?vhFb9HNfw=|@7lg$RU17`Wu9{HQNFxa5(~WT{$e4*T=4z}Rdu0n`FXYH zYgbw|2nK~1OYLSy2pNnj+>t^(0Y})|z5+dhFT?EIRwt{|9&E-Jp_&SU=q9fw^wHJ! zK!eVUCQirNg68eW0bFv?a(<(XvWhnqdS9QS4$2v+5?dEUsWLZR zO13Wgj>&G!&KLeTE?MDR@HU3%h1a)6jp$N^O^Zl6-RV+ca%r_7UbB&JjJ98G3Od>Q z%zOOpb7_A9VrR_8G48ThWzvmV@|;XF$((Pp>FWq=NmK4o)vRgj2)LEd*lRg$oP#Rk zM5J8dp-yJ6($zK&J=MiWT zI+^ThCv(*&6?VCc0b6K8sRR8F5|>LZt*MX{kFDYM^UyR*g5BF;w74+#SYeAQ6XOM` zJ7D5Z{MKDwEh{YU=CrhrR?y~Rb(Ya4+pnbLS$QnQ#9@EI)0T}&7Vqa$JKJnkffw5o z>J3wu%a4CB?-l5dcbDuDTFiczYh#D)ffEyC94+Suu76NkXQs6!&c@#jMR5&hD8)%i zSfBOF5@dgKdySou@p>X8nN9k;r~(6njpt7SOUVr0wF4|VI?*d^w??(g*mua=_0=yf zEm!%Im>2tRS;cG%L&IuYKp{`;`JSU{l5eQa@}W)H?xp7mE$N8(O#cL4S#M}X=^)kX zFV94}Nm&T6zuA*4S>2^xzdpXW&GpY- z#s`fKuG5Nx_?&K5u=X4FCdc?9P_TcC;Hz%-F3@t57pfF<@k?d|E*@{eFD}mHuDHof z+)i^YwRIY#ZmWXf7ZI({^jRSXpgx4AH5KnsrRrPvT>$fJTg2}yq)0_2cf>G0#=QzI z;v1{p1@w0Y1-5wG-)5QaPXQ=iJG#LCkF~D~i!$um9Y&BwS`?5* zx*KT_1_9}Aq@-KAySp2tySuv^1_5bl=^Xf9zi(4a3K7>VcNsL?K;;~#$plV3@ogq@i{wmiqJvu6H zv58n#hwTW}(uVy7Nfh8~K-)M8)+gw@x4*w1sd~DfH~Nfrh@NA-3O%xEJ9}b}I+|&q zXVhUeb*@ngW~$I?Qi1y&@<%B3%^pxX)RX=iz}(JK*ywqJ$i8PTx{$c=Rp{Qn%iqO) zt7L@#tbPAxHR5#)s-})BOb7Jg$8qWe7qP>zZX4Vm&%yKH4-TUdD|M^NOOA*0_sf0W z8mpxPzsX>?0`|}{o6g5N1qwGO9h-yN-Tc>YK$t2)h4-u=IE}aTwU}=|2D13jCx5o$ z(0}n9gyT8+8cgDPF+dfZT-3gj=M+4OzfzR#&ZnjU+d`d6gxj_4|BJZ>viM)N#-3|DtaWNqcpuA^piO09>{oLgV(HiJj+&}E8!et%PEu-c@cL*G z27cg3R07ObH^DIX=dYLM+g))t1;sRQO1fSy_llkOdePcCO*u3ts!Zvw0}C%a7fW4+ zIoj0{TIH28lJ+?hZj4C_`(^f(873;GQb z8^nA?gO4)%SN=RCR?MdJ@@Z;+-s$WY(>9U+Y4cI+B;fADOLB5)ReEgu|Ks@+G8Y=8?F0uCVBL8UUuFBKtB-l;`XHhu+)mT~(I^Xh=x zi8l;xO!OAKNp?T+{N~B#Tdu2~ zx+_5Bf3W}(P8cY;-H9i1T9yD*zUP3Tt)I6D9U*Eq+tP0#9G4xZPN>hTrwjijG3a1- zoT_Mh$coMW$4egLeB*b!)Be@f`af4keO~8RmsRV|N5tM;7k(35Yg_YkOb-)1kGocz zaYr_STh(IkrVVST-=201-5?Nt!7kwBd@{t$+J}LZIZ53BXH7p)vfQUR-jVmX(!0p+ zAGoh8-Z(?ef6aW%n#*-kX^bPu=2(FebbsKFewmmtRck_exIMEQI(g%CG}~f2gy9sP zocN`%OAiJVBo1GGC2&)Q0$g(v;h{<$>yGWy;Ox`7neJ16_uF4iLv}+%o}=rJr|K(t z3tidSd?(vqpWV*Qfl`B(H=EHpCy=5Gm*6)T^>DsW;hu~~a&z@4ez+Gdkm2dOaa>U=a#qltG zL&~)~m#HDG!GWTk)pW0?S*Y%cYTsMLvleB0Jv3QJT11d2H`fv0QBd2Dd~rHntmr1M1=miJ^vV_6K1PR@@{D4PTNW zUpvV00lE4_m{wEiFWbA~(R!1kg`bDvhn_m6Tc-r|u11cH>-HIlcz$$4hMsHb zaNq~awQG2AW^%~H>c(FN=k%Hr!S8 z|Iz;!9hK@GU(V7KZyk;#proqT?sz^__trzO%=*S}fW+hC{8b{-n`t#5JLue#%(Kx1R$2D^)0?tr09~zWh#}0HJM2oapo_1HCk8CA&(24I9@Gh@bsEdRK9B-@wr--Y%+lJfSlUy*uug} zz?b`P=TTZV^?l3eBDh)z_3|>%dUN;Qnl5L6`qOXR)YmBFAVZ}EHfysZq|d0cUy=Ao z7ZVaWW^5w3_ZL=QL+tCLuAG5CW_|TXLCdlc!rGYB+}b+O@9>qGT2Xo)vrHE7@xJZD zAXQ)-D9rmzh)%-gHXn2!_rC8M!F^t#OG!SrJea6@KR04w0(UVtfukP@YsY?N+siuv zuSTvspV)=q&7aa*itmk(?U(+d$TQhiK6EVQLZWbT40NhRYErQvN;L*`Bk&Q!JC-8P z>;t+kuLPhCBm@R$%<(L;7}D^59F(V(OW{pMz8v7$5nezTm#08sJI+Y3DzB!3e~m(5 zr`})>F+B1u*2bnmgrg+`z5T*kV}wKZjz>!d`y+%PhQ}aEW*8(bq0`d7>7Op%&-tjNRUW!n0! zO8B`}t9F+r!(o}r{mXi!Q)k(dg*`cvn3yo1JC3w3EBO{fpn)0AkYzbrIHs6#3XQN7 zi`@MfB$(X6hLfIHjUFd6@9#OBG1Uq3=p@;S(rD`^72W(~u#>s&nd{GD;;2$hNtK z{#Gu|y%fkaYp(Q8@Pyv27h|)B7qcE`u!W?G1IX8Kg+TV#a=Dn>diOtLz48dd)=T(k z6t)j7&?$_b#QkCuQ{5LLgs?0`h0$tEL^6+7t#CivruGqmB>@SmQvwSRHPw7D+@8m&qMQj4d)M{ zPa6y93$~P(PDn}ktsF`U5{JCQ6<$~gntB6LiT9#Qu)|H!=)h1XYBw7D$U1 zfWaC=`j`}0rYYzVP!2wh1aBOyS0>bBayfGI-9FvDgE5Ig2m~rpc)ny7oM=4gIE&Ky z%P2(Msmhs9W8o{{9lD&g5)_oSk0F;K=M|_nhmYcitd6pOLv+TC7T=QE?6E4f4^ti zEc*a;+si!kx^-GB73|OfS_xl;FD!R&lHbUcnR2V9iW1cHmhd5!Z8xZjDNya}N09k7 zfc+K%Qp<%0B+#v>S8BvHu^fu){i;c$QaK72cQ1Ebk9tRM<2BpFr@wZ# zKik_cJt1wm?E*HjthqtCvd#=8@`Yju^2dhz3<@FMMrI|?@shNfwe6n~N-4{bEolax zGQ(a5V;Uf2q6MNfvl1W4?WhwqJUbb}!r;XU6n(Kpjt{@An~LhxZ)MQrr-*3Q@>K}C zjzv+SDW}cKVQOS|Z@R8mr2wwLgB0(GsU#L#XX{gWP0xpLiju!wbw3j}mYOMQMWC6- z24SrS)yQH&epb$~yrm`w(~w)}m=Av9+$+R$I&GhOGtx#b67u`o!r?tYJWri77ua9D zXE$Xe=J;VmeLE5`wKuMVMVpCH;u0Oz!PmqnUc>4(nqXew2snboonlOVdU4z6^yGIm zBjz0w&t24;(*9&R+3S_=%sBDw$UgAvN3Vr)^Sbqp)q$EjQ3@armcBRZv-lL3fV6vI zz~}x5o9cXeqVI5Xni^{9T7wO20n}TXe7&->iu}! z9?J5(k0N~jRi;!3I+IOtJup_gJ%+Zr+{%TQ9*x$f8sfGMn|#Sl(5Nmh&C^ISYRGGB zHP`rwnOk4*O+vPkKtgtG4D?N!ErS^hn8J?Emltcqjx|~7jDSOl%*D_b-pkU(TS5DU z)oF$kUN(n4o7OzUK&Wrkh#ejfi1{0Me?*`7TVBf3gNmY?Yt8H)C)D_ds)>qOCdcIX zE!!SD-E|!L#G(o{;!WOWxJ-thwW}p-J+ljz{DblekXZeQMC43Bd>*nmBe{NDb9X8& zr^Ag@)I$H$KCzhI{&)7M&~`A1=iMO8O~+$onAvplY_7>vvzI#c zs-%dhG!PJKyecr)>v!UGKW*)c?YjxRa7q&eiO@Bl<$ip*9}!QKPIo-~YKmc_sQF$( z2EAk-5Rf-w4YDLsTbc(IPvB`anAs1DxVJwqt|Fe*bl^(|r?#EC)e=ZHt=mFyC4CfG zz!nkjdGxn=za&X0p!2WhTA_k3m>K7;X@3ZYPF%L@mFbC7SMOKg^s-2Y>YJ-LC1Vi7 z6(#sOfuK&u?Y1*)p!DE8CU)Gd{SG(43l3_PctEU25r$F#O5ktd^ zoswjoyP>kG)^FhxufbA9vs|^HX8``n+;x7M&BU`0En{Y&t!O@Id~66RS1pMQgrkuF z6XZwEfD+8Q8_uS48-W{2Ywdwiw9w^VFi`mGGd?Cl#f`;8BF7ky3XGh!?YD$8Dz(ll_b>N&czic!eTSt+(JNwBgU&RLD27cDx64fgv%jv-Y{>IeY`4W0<<$= zdw2QK<|?IJCky6Xube|O5dNO`hni-3h(|Bt5!0nR9!$UXG4es^4kr2fXWb#cY5kq| zMC2RBvM|#r9ZZq>#h3?`I%!%gY| zBZJTAhR~*~ZSKY&t~mw^)2CLMjxbGQ!|N3a=zc$e84uZ~cJ|_pP&RV+pKmeXfnwoY zxamsQ`}X?{jFr-jO+-tFo4+tgT{jFARRzlG&-5TpCr*@Dt}u8g1memLDwOquF0ViS zO(FAt1Q*BC#4D&}vU}`B*nHOZaG=J44@$s6s;QmERKzu-!lrmF{GK`$f)#>9YLUzZ z5SbqXFJ1o)b%=06^nJI0%d_D_vg8N%MJ_Eg#=!=op-%U^vm4_1E`A@pvE&_lClFYF zS;YN$Bl1@EWy_+__~FX@756dt_usx7ftT9!9^AXu1@H(qR?B)2~jyA5Z7ep50j3;ewu z`uO!wM@#MUpa5c}+4Qvby!vW*_xs^@3%H2)PA7lon0So(fj<9vNSq^`Js8VxIpr;L z+O}o63Mi-5two(g52$q>{bcUAnk8ugbT=gu@$h_E%cN(YUsFc2m9$su_sptR&?QnE z1-3ldgK+?Fq4FD+yR}IMQ)t_K4Rq;vQAr8l~34WJ@)^8FjbJVFuQACZG(-Yx= z>V(7rsab1$O{HdO;TLOd&dWJ!RV#I!#2jXG0=Ll0S`Cfhn-gfGbrZRWYj#xv z&bD@FaTg}Lqrykklt#cyM>sFGG2jGMk(9&rhA)p?j3VvZjs9<$H5c=0Yc(W7joGA; z{S&?~wjTs_v>r~=6oPRa&!8nnkE%(&56OkzSZ+c&olYSPn)L;;>G+T}+Y4p_8yIAi zn|^c`HJBp zV2gOV&vq}et>{G4eUR}ycbC(cXmYH>>Bg<%zD7jl@eJmEU#`BJl~`YoowRRr!6eOJ zU^UB7!wPtjN&=U&#Y&ed3Xr&JKmrBS`iRkG*<>v7qiP7b2_D{BjO-&aWf($^47F!3 zYaa@hWDNy^ANG)O>Q#@s6$xt!ZJ&3-3L++1q0A{E;1>$q#RKS z5xs=LFu5;j7(+ay`JD*cb3(u_x{M%J3e`kW0iZPXEd+^|6UN1DICI=0+7epeFP6rWDASr^> zy9;DMCJLJ2#llkNwzE%}Qt&~f4DxWkGPC<^EovZNMHCdD=Ah^A1rapW^S7~IrF~fa z>r2k+Qg?EsrLjbEh+<362#DYfU}7MV_-HoZCmSyR{p7UEv&J<-ZYR&;=yTb~uE(`U zK|#sYs243gYQR{jjW(k>d5ep2Pesrx)XqyC^~6`=W!^Q10feo3m0o*gX={(?Xj7N( z5wec}!Xp4%d;k)<|0o$OG6TU8cqOaJ3rJu7BX@8;Ci!1+g9<&t|7s%Gz%FL~3&uQ3 zj{dLSfmWBte`ON>KYbOa2{}3Wkz2NU%hb193zBbQDfz_sD zKf-^q$;3hm8K4!@ch)3h86=BhtRu+hAZ5^p!;*>(5f&B);dYagtHxr*nDHPgl492w zCKw`#3$wiU!OdjX43w8fGRP3FYgRWel;B5{ z1UD;7VbKeVfu_5DWB{Yn#pPuQV`! zz1paA#Qx&AQk&+XFDi!nJrh|*WAU44?V_K!IRt^vNJfJT=RMv^b2pO|0yRsCjC>qA zJK2C;IWDMQ)M)@oSVyN}G(p#C<=v95*F`q7P{Yq=$9^ic19^mi;t(j5$fwM@*=V+a z*1Pj>h727Zf6UKT53+f;{amf3c|0P_U7$_srIjhYf8mO7_XKQ=_f-Ellkou({+xZ51v~C(Sx2|`vPB|&NJxOKk#=_;_z6^ zX##rH&45(#b>5h@r^Ru=EQ@0S0J|%x*%s_NnH-wrdpVr?DK}*TK7#k5DHKH)rY(@J ztDqax;$%Mg)i{8coYD17;^{d!8)RF~=X`8?mLDCF{xosI{Zg36kR~F0EW9C*qxjo$fYT%Vl={&-mF`)`&ba;Sr~y}TO>1lA8VA285Vh^LH`WP-DkzCN?*=7Ze!U!5wgCpCSz>^y?!l5!nzr>7 z;n~;DmmWzsr&7y}nrm0J$h5BVMR-sSksT38U(SEKogNpZluJ!5jjf~gChL4b8&pBB z_3P7N&zr$1w?9?M34tOtm>N>$`t^!=a61ITX1FQa%bEt{;EINn0RVh#_wQs4!4&ru z_DvEMd_%KE4u+Gjj|Ccg%K|sQHh;rh`2TdTy@9&#C+oT)bjMG1)}A!N{FI66lsPQ! zw;WzTIa0*UFY7=@4VL=x!$M`=eSOJXEj1{oeoh*0dbBwuQe`yMzSn1A!FLgaqEI8& zmK3P%1zoyyDlQi%vs3TF#Ro~zn&A5?YMSr*|2r+Y|1AP|I0k)k5TWDI-`TRNS2U2K zTB=m_zcC8tIhhdXElC{XSrCf%aPhr zX9cYrFxI#T`~)hjF8>bcznEe+?fMHHn(F*JJLu^K(jOX2Vt5&P+}`-Wy*aQX`01dY zzVVlb@P=0hgM7X7X*=DK=k?;rEO_^qeRSEXaec3PSOJUyA0 zhn1p@72|z?sOVyvvs`N|(IjV;?RH}oXQ+yZc-*xL_h@Mmo}^^rkKXENw(-83i670N zki_#iFl&upjf38$QLtdxgpKg_00OG>pQa|XiIFXON2&)MyKEmE{?GjdG(aixJA;Ff zmiMvVKRy>8jFOb8LM?o3Z$+m#L~LL0P~Je-@2AX1G6sD2y3N-Ce~$fqHU>H`|uGE{(4-seit*PD>w0e7RpzJH^Upu9ur z6QUjv01t%=CaSj?!%svrGg7UBmLw)UXkaKxBa4aT=IW)X(%t)kDv*4n#AquE>OzIF zX!E|YFUaTP`pob}5nN}+C3j1p^AZO`926CA9 ztY8s%6nHSJxkTVFcC6|{n=f1fIcVIB0AEA44@uIVU%@l|?%U(SnI?rBCR`n*`)kz! z8Vh19>Da1fK&OG?-;SFh2gf0YQSOl<`6s~noax@F#hrD)9`VDOjeEV;V4prMChqTq~S?yo~Dp-;e0Xh%)#|HLazXYEpbe;!W<%VBam4k zUfiO0R?{g~+=ACMJY0yE<_fKP3BSA1)|xAx)a|JN*(?_3*gHCEh?- zMxEs_kDbt23+y#(nu|TC7H+)W^4-9H%Fn!lP#h$fHk{Z z;3)6nw0u{n>F>7^0g9x+IDohcrGO8{tq7?DfUX}#cQ`Rctlu?r&C(r?t(Gkn?? z{0Q91A+@4_h;X%oTsJx9MJVCA8wDB}`InsxyyqGjfA0oxQV1?Y3^KTpmN+HnIa%R7 z^!zF0{bAq>zFuI~?VN(xo-WKAGRz!&y+|U>CgwdFTvye!>1uvx^zy%0fd6N5|DpP5 zU^Hr{Y{T!&;<|-x^StXTiblu!5wwg;b-m5{tz)^}qQzNSDjd!3_CLvh4JHz+a(7@) z?MY; z>_owhp8caYra24h%pq%-RIR)QDP{xPgIP0k%lb$9-RH=j*AVI7@ho#Lx5yyM5xWvW zP0h=Ykwr6UIwDHS-u23icX$f#0r5nh9PTuvW0 zUr~9h_hOD<5MtJa*b*pG7b5kRaW-O!*#A+MDv_tcArcDpQxqpR5FVUkA<$w>_=D4jofpQDh{h7OVfkiT4A%}nM&u2Al{ z=3cXa&y4DtTFKGuzF=*!$Pb~JiD&dw)IQWP&7=hgsL8ty2(q96Ty<@In)F$fg+Ph1 zLvX&L!7MkNIHr09WxC>6*emf?P@(rM)JSQZ=@_QNxmE|i_DwTnv7g()%w6syxPLb`5FgSpq-&i<@c z&a60EX0ou+c6i)h#4c?BXapyPywOpUqU;|(swPh^?xm!Ts%bJhAA;Pe<({?W`KoP_ z0WQI~*+k7;L2tcDFi#LEb-wu3C`BueoT(r4J_Fz7{Fl$VuBsAqr{x2@)FGHUUY7## zMP3p}G+|M^Prr$St<%C8X?eaBntN_gOaTlh^+Km3t_dc-$Gfl#>VcF7(HO2R`G^cQ z6lr+Ujo}_3mps2PB0K`TC&x{Is&&TzDt$jC@!+|GV!>zD;Qlu3uzes*tv6KJ7fvn{2*0 zyp+^+m^9Us1AM{}MGHfXwCb6=?l&_A!YOI!#9~ycP~gx)!AvBstGbUTvqdhqt$s#9 ziUkQ#MoSe&O_y@-yjJnvo^rZAEZ#TxLX^jU&Li)QffHnS}{e`y6I)oJIY71|{CECj}J2N;co2P~= z`Hi2?Fz!X|qns9r$8_b24 zD=RBHuB-AhcUg!lv$P>2L}7}6|BhNRlg^hfb4s1hwV$-U6N_QuwI~f?3=!S8Srf0; zTP$8R=X*8fm9~DDAdW3i>}jW>r93X&b_b=|S$&R+USPPlUPpfdne$k z%Ps2PiLFNu9HFns;~*sf1xz;UY9LW9d!tP(+yL>^bCIg)8Fp?uC3t|OBli_o(G41GBI8{{cp?qfZyO#re3Wl4wxCHnGpihE(0~;i6(~zzW z#O`jm^k1&~@mgeNh z6_X3|^O}D|1@*LcF^8D;D7h1W#>7{_Yt0up*rdQCflsh?+uFN*?HbtRs-x9LE0d{2 z84Iph21;=)B(<(mUjm}AOpvdkTtmXnVab6fx?H(BCat)}} zWTyqfNEPe(%%C^DMs=wVl?rE?a?$8dR)-wrCAl@z@ho`KbUFTgqKsTL5jYy=5%6-3 zS>up9a6qCzm%N^V#)5)ociuZY6zB_;b2jaO-F?vvq zg8+XMz4@$R&n(^=vy7&W=#?(nE8h{RR?EbFA{1IO>Xx=Nzysy?i~o5;LjnnIdaj!NnS6&6UNTHm}(HBmaACC)x`qe+0ZK;r19O&9k~ zpB)ag{_K4WqS$2Zn^~Ly@k7!2SX(E zm1UW@zh4`1rx;H_lYo{UPCY<9eQ+Yy2KJ?0P-Uv6PGCWjBbQ>(7ii zK<3GyVb$&swfdTXzcosjK5`!n<^v+T2~r#k;Ihv%!C;Kfu;-Y)m@i5-SwI zc!IG~jA!zIGpHW(cM<2S+x8b+I3LA?F}#Zw?J<13YwoIR+LIx!XRQ&3Ln6^gdZtfD zr;j8ZCrMp_C2?5ZpPa|wI!woPW2W9_Ao*0TX>wb{IkBo$71L>={+`7${dM{K(&d+{ zcdNJ#&sIW3(=sKA27bNS`cuTFWWO9djg{i_NWZriE9?lsauy3W612U#U7HB#N%=U$ zGv<$Y!~gKtAECH{F>cz=HJpw{>@6Ui>$0{?lf+9jUQQ3T)VKR|Eue>m*0I%Q1$Zc=>#@lWD z5>QTAww&|z=CRyRho`n3mqc5Ai=x2Fc7SUEi{>8s;Jz#<4&Q~b`0wDjm>J{~#ogcj zNkz4vWhdGbridH26Xry`ss@x0I1$ts@VCN0XW;TFB%O6x6&QtHaN)og5jhCQ-lB%! ze$lSZ!;A1UBGf<{LQ5k4Fgsb z6v2j+(pXrQtWbO5vkF8jZO4q+u<%Nz(vGLuxfMIXQvUltuLzX&Cu!`*ITg^@p!Y+HjXA)&Dy57Wf@AX9B2eC^F%#;fGoR_f{GWmX(0Mp|4Ob9}X@9>Q zAVS2CI>U!IV2FpBpsK0CB2`a^o2e>ofuqsLHLE$q&?}>fgM}O*MawAjdCvbf5^xhV znwqSzSCE+wN+2KErKmuMvs*7E#T3c?(_IirH(2h}&Gk+|g>-aC6yBFrKF|*}!H>rx zQ-QWnSU3kARlJ9--(LB}CnvEnDsgtPmybG6n~2aDH!zUqwWDyVHgUWHv{=+vWb{w9 z`Zq8wF?NaeOx!HI{iI(#Xe;iN1%+HB%*2EJvB5N(|9(CmUjJ5L!WiJ1w}0*i9xDQq zHAm)mhFKw8h%mjda6yVN7%nB|mj!Y`;%6i{dSUaDGrQL`*nYyh7dH_~ax%d`xk!o> zMR0kk;1x#$t{LTJNWthKel$F!Bb2gkm6(q9{vnXcZA}YAAG978pP)_nM2~QA&h)fE z)H}MBbkPgj1e6qE-1m^uTz^q{Y??pc^3OhD7Wx$kq1NXH9Ws$a6eH^78m#7STD!FI z14PKM$@O6WDZ~Qnur=Yyuv0a8KB&uVfeUCP?X`Z@T;LL?E##C~q%GV^d6nNxR=3Ho zv$43msi{@odEP}NpziMB+j;qh6y&*|WASNc;pI{+ACDXb)2g0aB_d<-x$vK$wb_02 zogPie6!lkVt6xZh-}Yb~T`}1gF@k~yZ1YcVCV&Q%mOn|GuBoaCPuTE#*e^9*$yOVa@IDPA(5>t< zhJQnUJ^pX#u_cLy6ghmqfg5U*TSL?>088xt6&dM5F|bBOPcMVaBt%&Xfi7Kjg#%#+ zSB%z>436EGOkPy{p)D0XOk80n;LGf&&!#1ts4zSh86pCr3Jru_%y0xwUJjR`%`itk zPL;|$ae*Z%P#iu@m?*Y?L@o|i-t;jdq#nt<;^}DmUwQj7`{D=R2eMmFW|LHty^ z83$E9hO~%<#P8)5$I%Fqmw~aWDD=qCtz`moa>)cHh&RhY9pUrMZwKaRCs9$`Ni0_6 zkPs?l!MnB-{T^^(MC6vjtx)Z^kuBxX5ZgW)qyTsnC#Q4IHv)PpI;IhF(2?4F89q*% z%{=!H9-EUh%u{J?!`~7bk^rPvy$Owp2CsizXLfyd3}g$qM8aC{&5Sbb7)1EgHRIcU z&syXrDqvz&BsN?th*A@eXVu+B@9V&}=t<~6CDb~S_UGw~6sUN%Z;b&R|9#gZzi6(-)NdUJ zPTU)HLs^d>nr|z|(L#(cz!RWYI{a`zKjfCl{dBq92?12t(7+VWM&ii_8&F$+?=+TZ zicaGEQao0MG9WqFjvK^>cQ}$Q+wzc>KIf~NAT$1V6v;*6$9A^u8(Wi2ZA^+UNiYVQWuR9W889GCR`K#gA?CU|;9Cx9rSBDd=!a-If3d z=^L#*uZf%9|1zD4 z;CN0X9oS_J_P6Kpr1l6S{jBcslzRiVMR?|wCY!3wnhi-U((|@))tNw+BznKJ!yX5h z(}T_KQ+n81Yk~)=rAEksG;$ztn$Fbr0lbH){3`t7i{fobAeHwlk=OF27}_FgtM9@2 z+NEr9Uo3VbXnT8t&pf5$IAJBtyKAXg(ki-Xb1P)~tnsnIT=$ShEeQfgg91laS;nQu74rMC!_#v z(EC9H>wY_$aIryY;6}@)bwiLJh+*L%0L-RQXS(rYJ5vj7{m?%&+gs4+`2zZ*w_wUh zHPsT7BN1LJacK%S?7#>R?8*iTG@C5F2B=I)YL_sm$n+d05DhP&@G#|SDSp=`8(U#QiABRyWgR0khd;{z=EBePB`c_s!Z zAvt-!EP4O%LJp6&INY!aFn6q-rG7lEn*(@4?D2BM^|zH2%p^1IkQPOx_+M)OO3jbV zcVd;b^!dXfP zdMT&0Blpu1ulWk)7n!Ct=Zz~3J)x`Nv4%h>kUw#lE^c{Z2!013I6Q|jo^F!J@&`PM-Z(Mp@- zQOAt{AD+qAPZvIn!B=ZWLp@@Rzjk_to`F;3qvd?tDr-^ZA&$L@ z8XR3O7|f0&s_oCy+-jp`8uMpzHvRZWeiyUU3HZz8eGJ}TT*=ZYm;6Z0h` z{p52#5d=&r@nzG2kFR;&S}Co_3`L#D3EdaVozPzbiJxX_n29W#d1knFI5pJ*LV2+! z>koOM$2w=zYXHFlQwGZW&qH4J^_!0cPy4ERBtJiu&srf zzs^X1lTa9rYIU*P$X9A>&EuGY=eLs5cz`-NV{vMr;YsPDX+v-X{1s!n+{0WFIc&b z)*=yN5$fQne|i4d1C_^nU`Yo;gqC^m5i=ox0ujgN7%k3Mq3v(FWmXygq|jhm9`!ZW zkjj)NJ~(j140%HIJ5t$%Cny#_mhTKMKdt7BxTXmFy`kq2cHv=P%0pvK0U0iPT2f*L z-&65LoTHT>*I<7VoPE?$`72@g3N)+>iPuu}exxPzX>~FMAu-VbH0FOlPugY12kl*y zIfbi;GoaBFdV3F7>t^!L<7v=mZ*2ej8~ecDn50xYUnsN11~4}vApw*vnW__mA>?sE z2dN}!#QNlgiFMY|#Ep%@I^GhrrrQMd}70WPkf!e-@ zs-BBsy?u=(Yjt+@j?sP{AO{ER_BbHi7bY$p??AiU#%EaGk&!EUpX)V5QfBVLl}D(l zl1WhZXN(Pr>K+IYkuEF9TXx~T zL#~ij{jl^8<@AJf&nKq1QIpsW)`fkiCok_tN$N(aBtumZkLwCV0JHdt#87(a3nw7J zgYg3lgvF&xD0}r^W7+j#`ErW+d}A5tMJ8Z4=7ErW0b?PO8Bp|2+KDyCJyjruDeFgo zk*fr2$$V&d#C%vt!Pb9p=*h`@;Sq=Q)eZ0!z}QF>=5LEYR3kLez_i{HZVhoQzLTb= z_8I2G`EDRD=Kq6SkqD>zn&RDPsIy#1H&}M790$v&8#^3RfyOX{h4w9tvC+(D3DpG6 z7Tq8aQVy;q0Ez=kXnO94=wmX7!)uDyhZ&V6fRXwskBQ*>4LM_3LZ#T+42csI%ied# zRXdD~qt>wueHOzSU;yu{`w55oq&AQ_Gs(k&ROR7ox75Xb6JDic`l-iY7w-TRPuF!D zUtl)geYA`SOP!-N+U1X&4;_w~F?Oi}wO!}B^~k^li))NJK*QlzgT6_ar$d#)j( zky&J8IpvmmJ+fo5Wk1TsJ5Ef}C>?5?9dbf5MpC1Cqy+MPZ733(FM@PVK22kJd`arr zPB9piLWNY{P>$=1`EzcPHAG5XBz9&z54T=nizgAK!k7n9HE)GhF3^`;y;!s+1tUR$ z>{S$1>Kn~yp*KJnJbMdtrH{~P!^#;Uh|v+QUeCS8Md(80QB((<*>W@UE2w9kx2y&q zg>@#v0Ig=1OJA6S1gbAeJ-ORvqRWQYe!Q}J>kAzJ)mpQKas+OD5DGg~6CaM9(p+Q% zSOv3gd%pske%Zay4w1|hdLC(0(#P{vgnwZ#(K>Z&Hg~<>L_CY7Z~bN*=EN1xR%bfp z{rB7ypGk+Wc;ho5w6v3ILD)PB&tg%U zcPNa~`8+UL+xyS6yCt+Ln!a^;P_yhjzNnM`#-EfJ%K49s^wyddl}Zg&iUq$l43~=uYF~+{<5&cUmpUD26VndL2>DyMjO{p?!-*Oa!OQV6Evp9CSVj=J`q6A|DzE$Ld65oY zss0pkll%SdEpyjRCtwK3b1T5O9M@Wr0M5Z;`o($CY1>d%gq+UJuHT;3;C3B40yj5`0__cc1517Q9NR+TY+f0_N40ZrTu zL|T=zCcn_%FQ}zJlq~h1?JqkJiQI%YA_23RkdzELd(l@PJ=<=VZJH|LSHcW&S9riO z)D@=VI)ASmsy4j(1^`uV#2AR_**jRjYPybg+z5k4^IiQV0EveRxmao_gpfyebCp}w zOePij@9Vm^$*X-by|X)3FO)g942x(WDo}QsiE4d}#WF=dTW*Y7uCXJESC|fPmlUd7 zb54)u*=7-LTsE9Gkc=j{onl73K8Y=J;FE`heH5n$iAwv28t&K9dJZtYv1T>f&UAqS z^Nt=K&gjPyCC$DWoGq8lvYCEl{Yei24r}?dX5jA1Y`UcG-}C0Fvu1BJ^9=93&;|(? z=)D?i4u~8JtMHIr*LyHK`yaql7q;cqL-{b7t%q#re86&fr)1-KKadCIbJ-!0>#&+P zQ~XS8@D{GvcwAln`av@O)az=bX1j~UfS`?l6v5+qK~1OC`FOF!Q`QQuJ4wr0H{|bR^?C2oZo?`&WQ9eiasnfe+$ zsEN8Mzd5K7%|NSvQE%hrGXL&Y@cd1M7#I->)ZMt*_s{Crgh2}`1Jo(A1$cE+iYnaC&>w3Bzubz1->q3urHurVy7ET8IxTtNnI20J{VT}3E zCM$u5)8H4|tCj7Kp0N4?3h||hY|M+wZO)STxGVl zG^#+Isv_OOj8&FqE~EeSJnuj;$zwfM;YQNFFK3$V;*`E<^K9L9f*MONJ^w#6on=@Y z!Pc#t!F_NK5?q1>cXuba1`qD;o&jl^W zBo|Ur4>9Q!{a>n7M&(047g*N#dq5U`hFWTap~jG?k)-Ws(E1EnoBw3T-}a6(@00O4 zj2KtGPg>l2%Ple71co04@eX)4h~Cm{9lP#g6Lytm!v(FxmGlzSivj0kMTGgc_;9`v zycfLZfUTA;hfhZW*KKxMehbWqpi+irH#nG#P!*VCJq4*3I;we7C zmaZ#7$(%G6t7$RP@{vmVn~3-O)5< zC{tE)M8T@nVpZlxcPp^@^%7aU;F93tbxB!+n|!t_Vb0Oq``oXP2B443*8TWLrPgK3%wPN zoez+4KG?_GVar*bw@v!0AEoVksjD*f?B-6o{7B1|yw#OK>w+k*dgmM|*9-kSxXHgiS^wIRdwINh-O4IC^XFJMm+#5tIwQ|hT(dj> zyWD`^`7kH|c&vLzLUUSgH_zdWRcF4>%iiA#Sr8qG73{uG?ymPj38@`_hczO}olci! zJRyI64W=$P*?rR0n%zlYHv@2-pZ_$Rc^uEC#rxdsdg8O@F1EZ4vUcAtB>uiqFTGA# zq|;)7#xRHT(;;#{Zg*n9Hm9lipB1GVE{>Y{xoVZ0Yi_ozN7Luvo@kzZEnBQU0> z@!CzJb4BmWoAFN;{C~Hg`#y$03&bA!g_+{$wLZ_fz9YUlDOp4xn;21w%lV{f9ZpZm}m}ccCRAw7@`l51L@4q-HvVN;$ zq|9ZUwib9cKd)X*5Fbx38diYb2LPP1lqK(3LcclfL$rk-2bRWCg@43ocYQg{7b{Ei z?mMTWHE^FGBFOV!d7Q6sY=2pP4#^hs_1yHiq6z=B#Um)xZJ32YhGAdShggx&D?ehs zo-av7U^OcJ-D~@(;^CL8?^AKg_fN_K=9beTa>ymgj1%`1Icu%d6%u0zhT%cINX$BH z?DDk(^zbB>37T+h!m)WM9QZA#6{rFBRgF-8cy!=FpS`bqw z3O^j78KDyuFP<#EyTeO*q)OsqZp{oTN#2emRT-TvRL5nc%P>c!7Dr8YB109ETNzW@ zqfWVQL|}k_8A{QSdiJD9M}Hd85$8ezYnf+<4c2ays3D|{Y*mV?RicujA*!bz_7WFAOZ{LyNs3L;-j?Po7hJ;%Ku9`I+ zjEYvcy5fmH{gCQ)qirN)cKgNllyzZPH=y$7=nTL$&?| zyN#0p?1>}Xh+tFEU0DP$1-1MXDyIE>t7Ff`U_1bhl8kqnFS^@+Uf}l9tzBwP8d)1* z0VD9>og`YN(01{5yXRq}_thjZ6!cp4iH1VxZzAdk-Zw$uUw9un?9|C-&E2a%jS|UX z?C&u0%f7=V@!=j`Zdy1rG#&@dyNt4TMjfW#j)(WqkLxMxpHGXe%;a`Se20|M?3dNl zH9K2OUsm`=T5Bd+%VY}Fg(JxX8f{l<`9NWmxS9-JpZ}aQek$MHZ{5%JZJ$}Tx*Hv{ z2V;SF>(KQ*Vger^IjagWVU`oNhOWze^Qf02i{dC|%p9Sr@<{fTV8ubIS`!*k9Wx>^ z3GOBn;Lj*t#TYDqg^D%;Rc*vD_IsS*&?q+wGHmU0NM$&AAUk9^@(e#HPK4WX_bc85 z{6rH2>kn)a-t!ZWiL5~&*Z1nZNxS9WWd?ZTiENSAd1Oo>Cv9b;Sz>N!x}=}*3Jcwj zdtTeWGg{B&hHeB(vKG`L-ftO8$!4^YJbhm2RH0Rwf_qB-eskhH?roKK5-F{9k3kVm z5w6~A`lFF>R_U`^#lQ5)k#l%DzG=J{ zc@ZzYNibZ|gvMzcOPmn^5Jae{u*G$r2rSFr=&>#0>*VMH4k#z07$Cm#{PeZbH-2N_ zdn4sFoB3jPAZ#U!lJc|Z4Wp?n2+RyCx;hvW#qgv_2~TWRlAKyKPfM5J_4u$@X}nNn zTc&6N4sXJT%M8l=Q^5jvG<^?)VcTM97jCZNDjQ0rr0i;EUqL-J?RQHM^&Rw4p- zxZJx<8myZnPkni`XFVn!1TIvr5|@dd>dEakAIZjwTf@K^dJxmH(e|$y(TGTZgH}}jA3rwCa3%%PcC?Pi!2|~rm>Wn2;nCv)`RE`~ zBSsm13?R%L$C-x)0FWry@H2{42eGk=V1x5Enmhim6^1CS-dzio1lBkhejEGR{d6_1 z??}ddJ0hdU1x>iu2r^;4?ee(3BYIdnk94T{R1@pi2*lE@k##7%3piNjoH|{vuu9t% zaUc|WZ2Oh@AVWScj5EzTuSG@02v0Q{T_&9Qyk9q^Na%M}64~g`=zhFGm*;I`r8WZ< zRR{0^voY-XqDcO1jf^nG6x3}I%RxNtt}ABt^15eYSTqp&d*Wu2lKfULUmF#eE8jZC*`O|t zgZ9qPxMIQHD&Wp}9LDl>js+Ih9&H)2>Z#(j-EW_@cy}{-lh@$k+4iRj4cO%z00@tQBR`=WV^KgHy=on(%4-pnrvo{k;Av z%v|O-w0&OW@I~e8E#!2)V~D|DMHM@>M(1kq_zbeqRWTJ!m+L(!hoohD%$s6flEsBK$tkvUgbzs zV?>-twQrRk7qkFa+{9c0XW2|;4r*4X2c(gIz<|TVxnpmaWu--7*pn6E26Y$`2;l~X z>ye{%8B1ROt|W_dG!(_dq>o^t6(*~LLoJ&lGJ@dcX_~kq(Cd@M!F5geI@of}qN2-U z+Gd0aVxmcdO5|RDYZ*VO)0#(Hw_(!?qDH6kVqE6P<+%yeZ^zqyXf%&HF_Um4;=M0` zT7J3ow$b_DkNiQ1Az?LYE|=(#j%=|NalO4{m@D->TwrgJpTEu(qPsbYm1j2WxT&bI zELQmHb91mz<%(E=P6P__GO*idK2Dk{OT&kp%@mEz$dKVjNW)wNyI>AQ?^3(KgFy5@ zi5DssYdy-9-31$e!<#bnysVT-L>d+u=r%|2tFUO7m?d-w%hPiBg-P8|e9x!yIcceta)IB4}atoz)d zwYx9r(&ebe=RG~rX~do^c^v(*Ni*_u5KMr=E2nrImZtXyHUvCQ_>0xLw5l@URstR- zp3n9tYxHRDzH7wRXqU0!SVo}-sm|s!m^}O;+Wd`Er}1=Svry{*UP(8xCn^B|p46z{ zt}uYyKJ{+F#8Gi#xo%hHCW}Fx)5zEN0?lx#_9Tn;>J<@HrX{$h*37}`>PX|}&xJ1n zh{huM&ZcDaVcW6x9X>Zu8o8vcZtoj$UFn;E=C3(y&JL6XN4*~Vrxg;1R_eXpS4C&t zgD2B;mz)$4heH>|9-d9VKu71jLe!d8hw~hu)?49m=HHaD-w1?B8{+M8avz+w9*;2* z+a;c7+Wr3ph<&Iz7kL9cRAv(l>hkkJkb2zgCk(@^Zg2m?2?h z5CTDfI8!f@3F0yok($q(56*|EMLMoElL6(p)TL9o4}V&bS$o*p{f|oz73oL#DNdgzIq=C{7V%zUMfM#@WeZTeKh{Of_AQeoU)1$pjKJs0hR3d(J&kemN|>OsJW`FG0LWyH00Crk zvs5W7&4|!*PH7PuS{%_{RKCm6P}l@V4P>(%rh*s*&Tty=?Pm3`LFr;(V#|``Ch9P^ za4HaGUo8y+GEzJgl7oy5RKgYMnt#i~&~)a6I_!90&8Tw=VM-S^Q2+^j^>Fck=(u{w zj22Qf1z|c;aE@J0KY7^!5fQb{XFwDT#|$ScTKgRhyCLr87jYt^zIX&+{r!`?9*6-9 z5C&%~gJ5N&7gi`Ffq%U0<$tWeV$@F15VI6A^JUmZUWKk$_<&?%2OK~>)-&~L%EG5iD@ke0 zZiaTtM_}NGQB`@xXVYQf;G*o=`j0@Z*oZ+_K0gqK;I|n^X9!K&CX+;f>+d#_L$V9I zI;ME5-cr(xu{_u76BQwPO<(3e06|AwC}yYJ06o(MhRrfD5T%2H2!Qh7_Z7Yq5TxY# z935&KviG`^*)pMty^cPdkPG5u=X6-3G0{X30$~6xCAuDJb)rd7x>!A2Mis7UbvlV9 z3v8kK{c#kXzD3G<%So~_1H76?1O})UOb@5?ZJ-iY4^?vfyS!!i2QYgF=PzvJaav_C z*7paJp>Ifo;6hbAoIplRnq+KgoKR{Cd}cg=5J*5bF2-H3Q~|NME^zIcfaK)Wuu?UT z&|$FPI6|za^Z$J(LX8u+J(m<8F$V#b6B)jj&W12R{PFxx7~oKm|L^R|jV+rFoNkHF z&8$5UFbvo15V`{7FH^h^y6$ol)I|rxH5|elzRas+aYGbo%m@sfVrQgfsWA-ULA~zZ zcY$RoTzYfH1WZ6~@e}ZE-`}{#;~juY;5|e(*CY|Sr)}W+l%yi;rWh$P+BKcBK&aSu zT9&7*U-x+#RRw)cPe6GJt7x$6@>kZ~nzOwqb;|dKyq1Eh$J)X9>`|V86`0)?2tp`kh*+tAGX%i z4V(d}(QdN?qEs~oQ+XY{8b^0W>rMWv_z0qMVnGg6hyW>_y*N4$?1&w`WZz=Mg5^N| zXr5-q&wBv}_*h6;<@xRW-oI{IkY{K_ZrC+;)~+^e33$Fw+sHgOVEhO4E^bbGTi*}! z(0%{enkVTz82BzFK37W8Y*@_e`J$k~%75`_Scs{AKV9seG$z}%9ye%aw2Rxyam(nKiV<$dR=#Dmj~33`dIu!Uolcpa;kX>E0lN)hR%_AQJ{PTMP-0?5{r#?kKh@kTM!SS&dG! z-Oj;cfPrzn-TX$Mry$%;&O!|ja32s&;046zjq^3y52=|AIxgu7TFo3`3TI}g*zlFw z?*EI6(SO{IxFPX)X>_0ic4#iOs`XM}T-WMksvn&{1&GbNPVu!_)x_rTH>qP+p_9o} zZMNF}F1OF~YixCZgb<=oopV|oL)B$RgY|_+<}pV*N$x@yB$Sl`>?kZ2pwqg!Pm1|s) zK(h^mv3m8#MdVrc+z*?Vxkopvs2-uiCQZiuoo@e8g>NcQ7w8`tWJim(*L_b(bb-&y z&u!n1aTg%V+v(xoQp5RM&pS232FSITr-~=M_irF>nyZZP&?7x3+ZmizpQ_ZGRPu76 zv@GjCJMnQFZ%&tG8v9d*nmtCL4(t4!5?WIFr0FF&^U*79uEwUO?vzZ);;$yWwZF{J z*xw~tSlIm3Z2q8*LNOZ*k7|v?rArBigTfF~H`0oWB(1?g8??N1B1ksO`15sP?_Sga z_OrZsr>Jarlq7S58GVR`GtBVdQu=#CL^tl4UliaBdk$Knpr}OlzTTDEcu>QoFe1iN znm!&VLr$LBcAGt8#5^oscNrV7T!_VHm+^Y{o9v$~QX`%?xB=HhZhyegl42}69Wb|- zWkALQ*#$11Gjh_0uX>)0PE3r9Dd|3SY<>pOgmIgubPli&xupyFj%d$yKLt!?OUE2x zbX-NW78UnOjcId#(X7!edNdt`wq?3ZWV$*YU5l5(IkGE+{3Xu0K^)bn)u zq)9c?ZU61j{YdfQ%TY5VYf9i|C*;e6W7osK7UP$PRbAJk#p=~!Q^O+4y&n%(X~Gu+ zsGrLJbROWCyS}ubm^!5M|5JPTtWB8aS>Mij-x*sKA4?JA-*`~5$Ad=}l?3jz)NNni_Nhzd)Z6qesU&R6 z?eOdFajeiS5>39;_G1>eqj8sm{r-D_YU3WrleY-7VW-n%c1m6#SA$knxqT*gtz-nR z2;Fl11f@pLv*p6L1!s4bMu$fqOK5exJQgR;x3^Ei`fnX#K#<*fb=t_EO0}xb7d2BN zZ^8r5FNqdXHk&*r;V1Ar;m;kcc|x1S3gaj6rGg*F?a-{ATqzE9k%&kid!fJ~-uo(XE-?z1 zjJ$-(hr=eU-SdCF0P$rbs1tWrTE+f2I-_vhSCLk|cRvMj*sem~4+(NV+E`A)(SB@R zLp|#}`{(+h3)(z&`9aBd;Q4psS#{^0N}93%>iV5Xv#XjJI70#<-%%0B6mDQS_ z*XCn{&5rX(uJP>Km}bpA@A2o2p*&+}h<%y?J5&(tfBQNYOgpt0AUaUVf=CHp@UrV% z0-J>FHpnyXch(Qh1YGk%?|1=~J_kADrW{@0fr#Vz()P6dwbGE(O&mC+-(u!Kl+_m-@90_fBfAlo$n(z8KFu8)Ir5CJo|QpW6H4B?W)-@^}+E4 zBeB;d|G+@M{eXZ!{ig5 zjm(RqN=v<|nqk$Q*R$5bZDyyJbQigpR>Ob;w~!g+mA7vJ)l$7e+lbj1ir&^j{Y0Aw z(}ZSYbMH7KgGa);3BGJ%X0#1s&UH5r>~>>hD1Z##S#K6cxBWr=*7d!aRB!a&6znue ztddnP`lKjE=w+&kk6moEg(uxs!Tpmz z47Za-QG|yp4*% z(m>$8RKcO`p}sfL+<_EuNt*m~MiA$7G~WPKos+%}h)#}efyt(cxKvRzOba!79iKQz z?9+9lPE>}&tQll!vX>RK0y*qoxfYG&$3a{uBww<=SBOj*UC-)6A(n?hzGv-CkbjYw z{%(rSYI2Hl+wgoB_fL5f0XDw`2+#?g?))XV?U@43>zu2_sY8da@T=DvEikd)v%k&y z0~wWa13Sq?n^Q*3rELvepAdfpB26`!HbiD2L&x!(h>7* zhm)7PvbezQq;EBy*RcYQMm;un=R-!Z4Dgj^;>M`t>Qi>zdO=7u;%meS z$T|!%1>^VTeWsLH#i8mUAn6zfYeSL0VcTH{ECq?mL2@uu=Od;GZltzBx;9L~Y+;eL9GgxDKv4>iXAJ9 zXwJeE+zZlqzH&u<|7xLm*~rfj4z^~|AH}Dnf+E8*`tj={jZl8fD%KN&sGBE`L20P z@T-}}yjXkgS01c#>nyGUM9@;U^Hrm!TLac_CrFxYH>}U94cmSu&iQ&?h{IBdJRDqo zL&)~_t5J?Q()2%gCE>K7xgw}?+Zt&_b?o7EUdUdKWl9NMnC+WI>7&*ZqttjXE9 zOYV~Lm7gQR(^z>F*8y~zzPPV0D7AZj(a@=Qgx|kz;9hI8?ZFM2xx=6ef>RMVYgDuuo-~hd`fj~o_M0*oNeO^v|{R?dRfj%;d*M~*iUn_Y$Zcdc2 zdP(zbF|^&%&jMg^io!ay@48s|%stFUqp6ZQV|a607-$hFl*|`mc$T==w#=igQ0lWh^$n$Z+i6#NR;3h(|YFLQ)xN_fwXUlzC^F(SN9V% zJ+DvXFKAko_xmjYS4@Gm3Mum=San5z!?kHMDa?z8Vn_m4h2l~lgyl`q!-MCEPyt8f z$9kDX2WRawca5-bk?8*mj?TY2~oexE?cN zH}oD3i5r>5$oDF#>*-c|!qYh5wMySH(EPZ%J}e7_Z+ejDxj|H&tEpX_`j;q=!w1<5c;ab}AO`7- zuQ$4P(Av#(76j+7DGXKYEL5yI^$$Xr0`;EuR`cX|JTK~%&ip^xzjeQ0*VVg_1pan> zKJ6)Qd7el;mto;vJqbv0yzfG|9kP9$kdAtTRa%XT3d}TaIo`DG3T*iFwxJ(bcaO<) zJy!G9H_?vmxQ+FuUPxCaAC$4pUgx~{n$bY89(ZRDJIQBylKzD3z15LNA1#Rw^H~nM z#Z3{hUthfYj^mHR5e&#_0r~(oKQgcq@3vFD?z=Z>oQ-jvTbSs5MF7oOSsE@k#2q@z zKp1X>^SHMseGv`4ET`C2(5kd_u9~9H<6m=5E9DE~w!V zD$L)T$~vk%a#TyMFxf2D>+Tl`YzprD^At|!I4a=@)M?%u!11x(hJ`67M8c8~MYrB^ zhNG5Ld}(y<@1#-SXttY+jX_Oiz80Lq@;b+2%%mpA!os@Pl)<&v1ffx2dDv}cWsTY_ zR|eNnf=B~&%AjZ+7*UQ>SsT$_-!nhw6ZR_GJz8qfwLUL#t(wdhzlS)0F?Sz)@i<>W z%xyP)7^O8O=%G*r65Ohdh{NppY4{|;EJpP~H>@{I`~-UHE&kw7sV+3k#aeHA4NbBD z@lky0@D(k4}Hv+U9NjcwA>brRA>XJ8;3#kp0l8pfzhfD!ZAD-rX7Xm!iq? ztahBPJ^!;oCwMcwu704Qa>V`lARgi7h+UL9A{8l$CM2e`MoLmr^4SwhiX;V~LLi2^ z*TBU3?Hm&DoG|AIdydGE`^}yeZ{MXnc&GoL=affC;Uk6%H?>N&()9j-yDrHuEo}(VKfHe zScn&^bZPGTu*_N@^qD>85Pe5~5BZwyMTa%_&Hf^eOk(aY>~~KoR{=Ur4o|t5B5%#s zj=DJr=o?UM=-BqAD~yUr)7_j(kD&eD7CDbYm*;`T1PRZ{QnRVI>K6dR(bvm#UJs6f zjL&(Cj@*xzYnN8cX;6K&xk@9JnD1zp%=a!p$aiBXsVvV&zJ{h^L4@~mm*Qh_*T#^W zL5GjhOJ>uQND%={r|`ub!B7twB5#**99B_o9-r0xsQYRJns2A!5bXr<0`na#z*{J> z%GmZPSXBODHcT#0`Gpn_2Rn*cY9uBK`g!AERBC&E<3JJ}XOF&HXFmwnHVQmXm_ab< z4Vv?HKdiOvZ_W!?$wwd06FFO|wkMfqg$v5*Xm(s~WrAC6(#TqM=sI1$6RyX%#ar;Y z4_-}&V%0GYo>7%KQs=ryqALntEXe)XAdTI0yT1*qD9wqXnK|}tBcj)7Lb0vvhR0kt z@s=}7*40`MS7+y$-myn)t6Y*ht#LUNQ-{urqkcW^Ob&0$_Qoif$DB1X7`m>TXs%|9 z3WU(=4qlv6czLpwF;D0l%mxmP##( z#1;*TS&%4yO&f5Y+gTzh61uK;Jwd7MmKHtRzJ=5j4#RvQtS}6-6YGs1qRvAfV1B zx?e5xB#bbqXGSXXrRW$}%XcSOB;_#~M+Ta=%@7_UpFg{Yc6oFcMBET}@!m#z3BDsd z4(+xYra-vu2bgo`-|hp-Za&(%d|Km?OfAtI)LUR41~_3zoi(kd-o)gl|Mg+t(Et7K zBRQiamitKxrodI^6FBT;3xbyRphlPr#S$3wioCO#;EX7!vx2EfLSl$Zr)Z=d4ZlSI zI6^PDXqtu!ceppYbn=hI~pi@goyp33}L%1Z#&o%%fpMwG79uEVlQBje=eeH0$8LVPe_If$FQgOni zr|jh&o{b*~TXE-`4*08UYDSBD*sJr|)-FIf7FRtIAqd%y-()jhx=}vG;(P6E-N^$n z3oGF~x;iT=w`7q_BA4I}*hV2kK8=lCDHBC^$Sc5s6d=%qb3nhXvk? z{tlqv{DKK5|{b`i1bsojjSItxc6H&@# z00#c)gpLW$8{FV8OnOg1*o$rM>tn`8M??_PWC>F)-d|q$M1WT=f+P-l+s*cR4Che! z9Z5IH)1wJeW{|fz@ zd&47Q{Ey4{;;<+2hp7o1H9~c5%3Hq@IqtE*Jv5PhDykBP81mh?Dh#Vn2LUyGy{bo_ zd*2bV=@^KHRiAo|he-IF=)XT3Bk4|(GH6_G`s&^?GQRM7f)ElVnQVBOCB#pD&KTU& zF(y*$@;deg;xun@S9Lo}^L2@@{DyIE9Qd*+N)1m4{gI1JrR3EgiuG+UG9ih-c<^2V zJaB)xs}}yjXBKPLP#J^+*g^?(oNFUMz1V!%TkJ5vpo_IE(uJ$|R#4=%{GV7oLB_Q6v;xdjUFRNrSJ{63?-X>2Uyc~06+}i$TB#8T;o5s5E#NOp*M3=^` z+{UO`s&yW1JTrh980d|tEHXJ>5K6L|Tx*PP_{&)aj^g>=LNcBq&oTP9DB2{m<3Xf@hD&Pd9L}THaox|&A9Lhd z>8qp^v_L4L^+6FOTr)Z{|9x>pl%Xn#SW=q5er>U3joa?5TSz>pq?b77>xkz@t{>F8 zGLDqbvVRa=9R}4Knnst95q{c!L~jx1eH=;KR2U?!rv|o>o4l?0o#XO5oRXef-n4y6tuHM&Op$ z8F~CelBg&R3l`h3v2VhEbPH6uu>AM^QIsEMpHe>AC>fL5&oQn1q%KDTLMP*IB}Spg$V~N8U9_&Y)|oBeSaOgV;c;EQ!gY} zU#yl9xxIf6J<2`dWwcG}E-msfT(=%qM@v#3byB$~^Dgl8*;R#%>tv6;=#;l}F5!Ki zPX(R{8{M{X>IVr1oqmRL-o!A)nuOlz{~Oize?~>;|l!^sBf3MQj0RX*SK(uP5>Dw45@Rzr~xKfcJB~3oxBWK#3M(by$ zv6hzbMb#baJ2s?Zzq=wL0t5G_L6+4|25<`m^vR%Ila)o*?#oAAtDEDQDvgRgmb1>g z5iSxBS_8Z=+D5x2HYVDPb$t$OH6Vx<6?nSE-`&GSq3lEIb6`vuR~h{F^_z?!-|0$L zB#jFyw7?&JjDX3&#Go!eJ#`o(OY|P<@IbY7MwOX#DMBNl@$ui*)^66Q!kk1kS-dPS zOD6Y9XM@}94rbhmSJ^hbC6wt9i-!b6^ll7(i5hx0pjX#n*J+ zKrS(=ppiExE6Hy4>R^xslZeOE1&aHQ<873x`qBnywK=m{E74*p_zPQkGxiMrWtyb4 z)#q|J-!3I1_q%wAKmOoK3IkxX@V+aD?F%*+2LNpb;74xWI4&NELM8=b-`&flVtiWK z;#*@9KY7zzxVEs+@%ZZm$?hKY_771iY%EU8aLFQMrvJvez$E$>HJhCs8u?l1cH(SA zOWk3!z0D_u7^t<`-O`WgM zYSId*;-L+|sCG-NQ|U?9FskoSIxY=w`r>iAv;ZgNj-o-f(mX7;ce0-KL4{-&6ap9Y z<>BXxREK9uGBN{^$GU+vN}NH?{=tW{WSdBAYIsb0)Izn(gQ1`RgD8w}=I)>gG4Cg{uF5@+e2` zpH)U~Ta1P$Nd5@kB;!P&dAF|42sJw_H@KeNQktFWc6eM#5g1?XEMX0iZgl^!mLY@# zoJMVg_NsJz9#SOu-4E{9vzLW@-$DOkLohsRIa!J^WZsJ`JceG2{&5=|<_Zo*Urr0X z@6d>{T{Ksiq=-7M7Hm;a)Qt!S)|cWtWIkFi-3ND6*XMI&oJZYGw7Z?U&ClOm3pQUJ zHHie{rx{HL{vtW+ejR*D63Kz1kiWyzwXc6NFlrP*`U3RMFRuOB55qw;_MBniG3MS% zm{A~j!S!nV0y#>E+ki(i0w;z+>G^G1rd;-1oJQ^tvi zfkfnM-|DIdq}r$|v*=Io2<97Iu6ct@2Hw#BRWlQi8B4QXF$P!O^EV0<>(15BZdp!{ z7<)qCANWSG>K`asFl<(-cWE`|E1JJ-R8pjTEcW#{GpMmt+RmC&hPZpY2~$Qkq1ckm z6xc(E=fCXiXHQosSktFuwf`%>!n9vrL;bEQUs!3_^@Zb|6@rYsTarkn-s;)?2kE3^ zdWk=f0}OPMKTJ%l0+s$*V%m8m8XT#khf4+aP*b|%Ej_LZZd;>GC2AN&u>gm;)EHa* zorRy;E&fm3^Ovr~^Hu8&`YrYKZaF?p4(=VOlXiOa~{LFNEzG?O0c76gKi-k zGgV`1v=wT%k#xoNCI}@?PqBt=ZG7Hs47TqfGf`2SFbxhsr|;dyN|P<=H0XPET2vqr zo`XU9$h{G*2DJ0`>+ha+1(~*((O?){d6LIS@|CTqemziaP1OQ753BnYvLWnjL7jgG znFTr_YLIMZyZfP&-C`^dkC6`VAyk;dj!Ota)iUJD!1v)GNt4Rc*`M}l$`C;GSdq4If|$p8zR}b>KjAPeH^<-hyXj}w>lu6W z(B|9L>YOH13GVBVOfHlU{Abj_q$>Z%6)brq8&bcQLpzA>@ zHV`;RLGz#ZMnwhPb0G#>!-x)a#YZDy6{|)uHY#Qos|Fn)Cc86=X`xW!a5P9sGQfpw zKcGd4BdMAYisu13NWtm=U|D5I6GAf-Y`^N+%vU_pR(3s0tcrpjB+fDN-INwJN}Lux zguODF^pK6$CNE4C8;0#PG7O;4R>h%0Do|xmI`PHF3LkdHBJ5*B3J&_g@>|qyy&bx2 zD6e;r9)?#Yo5#AK{Vz}vs5PqDXr@=7K9?9XQOSGvk{UfjZTfJLRM}}#V8RAMy+M-k zmn|q>M9J6z!z`IR_N(Q(D=q4y#<7mb!4x~JEwS~5&0A?qf~|Bt22oM+FP$PHj zNa&=lnlds$HAS=2|55Bwf#0o_N8dOqEhu}jlS?6vGSn#;4WcFrgQ_cYGt+YaS?2~s zML zCPORsUn!|c`=93x4hOPj2g;P+uJ)8VY6!g|$g!zVf_D$cvmcn!SoQs--;9)q7dA8u z9+$609CccRXn!C2`!@0w%dPN;=SyoHBtMJXo(hP5rFw$Bzx(8V7Zy{ipmUkXiH)ZU zBUV_Lt|HW6HJR&UiRmibko%yxpTYj^D3U-_~sy4KB@o`n4*;XuwJ!0957)mO-$*?j`zh6i$p{YRfx?R@Z%=_5o znuURpXq6kdeyyuezlEUyC$2=89Wa=J+GDg_q#tLM=X+IuamSyD1d;{2SbSpSO#C&@ z9r&xBdF-*M)}LfG0{Dt2X6QM#F7wWR$)V%c)Ut{UTqf~O$Y%fw@$|Zd=V_1(B6aHx zpnJE?PEzHLi)rL@1=%o+Lsm*BcRlkx2rumH%&Ord>oqF!d>d0EP+eE_sZ!3oA1+yWM)}MO|V4;S^cC8i*h%*3;S<`!lmM8(J%}WC*SH9z_ zOY0y+YG(#nr6k9<+I&LEU+xlr+=(E>Lu?{B`lKP#GJ@5(PBVBd zU2hk3o@+jGU8LyjBVo{@REBoF2@O#C1yD$>8XFl|Zqr^Yd)HCpdFKH6x+-$J)a8po zZjgduxai*aBp_@H9rxH{f?Z=BIyfp=izRE}k7lQUcSOSEfqdV__eT} z7DORxPT1Q%`<3%UJ7bUYOXO+K&sx)$`2R=KS4Oqbb!`WCinUOj6o(?k-GW(^U;fORwUU`hvd=mD?0t#n-to+zS#uZy&ceGLMWJTP zy+?@ptG7y5=Ed?g;Li!voXbxb_dMoVk+PwdmE!#b8MM|~$!0GwON`S7GLVK}F6l)3 z7Fk}GO7817W3ttq?M)30CDJb@uU=F6;#9?1uG25>`h2;H&BtZ*Mlj!=vflaq8<@%e zWjDzS9Z7<65?`eFzMom#cSIBgt;NL~fkvaq>Hqq|RMU{KrP84VJikWCSYe@!jD9#|LK>m>l0- zeWbHxhvm9Gl9k3v1EJzUi&HNOSp_$HOv9*vFs%kKcDs4FnO5=*l3_u#okT*Jj5rU^ zA3gV@Kf?5eCQGiatJ~&&hEZEgB&!gKpg5f-%en_-b%I)~2px6>q>waatJ#hcqeyCu zXsH!0nWHh=MOxT+QyDum9AVqVkpC_m`rm~^5Mp-V^H4AvZ|4V$l`prbOitZi2qb*mX(yQuo{oWTyewFna-Wt}K~Dg2RX<+1SV- zBLr^5pTT3I5J=+yPlI~h@`^baHtc|Bum%}4tvzoi*JN7q->oGr{`*dJ1SY`p0|^Uj zP#?=gVGR3%)@-j^>#G6)&c}q;tuNCq;-g_?_9Hj99yI^^8#s;s`&4k^Oj@N{jq4MxCGYoQuS10muwj}^4LsRmAO z6-sUs%@lPPZnxh?R}GC4{@5f+d4%5YqQYPy!;jhaBZqH&1qGScqUF6Tz%zamhXf$+iR_&!i0!phg*JP6uM`9%Ci)Mj{&I6@0|^W zNv|=n?LhFRWtQUc+^m!HEAy_djTM{3kuw4Kk?mE*fx!n$KTnfy?BH2)L9hecC@FYW zVDF7OKVSHM{@A&9dPsf_4HV!A+9VnOhxrZ&7!#!Hz5aGU9oNQxVM_fC8{~CpW*#tF}KPW3$#n+hTUC2e4?lZ#8b4X$((! ztDtRF(3UE&T>-}E3To*J(ECScm~nvO^f%RO<3y0O8=4pJVu(5>`W-$V@4jFY0| zZDfw|%w9J7Rc$M1Y@A=x!Moli?_6w8IUqsQEr2}@nNL!SCVc;aqr#y-nXkU0(vDw* zt|zvTUTrqd6^&NhwOMKLR!tb(_#w1!(G-f38gyix$!!utE`#8C4N z1qCb~owy8)jMWp9=7RbcHY6KGB}j}@IG#u(Y@qEy$PL4E3~VrR1pCWhtl>BB=+rdK zww<4quZ@hOD;r9B+9d*xTB~TQpX~lGI7cP^f4rU$)&Swk#}pr}V!>9fXyJG7d<%h$ z)j4ViJ%YZvgM=yf;_oVV z-wB^sCK)naSkwKjg}Bs$!_fck!dDd?-4GV`{7ed4`CBd^cuO&(fT{6qp0rQ>%C*~- zKf|AyF=Nw^kE_Xs)1j}9(Pn6X5o{a<1F=!gkQYnLnbGTEgir=mv=rdI4142{Gs40^ z=q%+M8AjA9|7kPul>Sv+_b$YCU2Z42!*DOsDc^4Lqaaqt1hp;D0_ zet)-Nv&6Ix;(zYd0pzHRM3M^%D(0aYIUd_E-k2vUS)7m&*ZIehV7JPeIGIl4Ew8%G2k>)3|6( zAUSh`fWK-Z1U;QUZSoZ7@Va?yvY>jqGuf|}4Gg5LaT_ninI=C?tj@N(opJ9K#D=^h z$xO+)0ZIZ)I$yt7&;2vA(cqvPb69OFg8k)xF@OD$ZTrve;g%Tc@qA?d@HhCw)C@Lv zzdzpReyMUTpN3Afn3+F*R3D2N76zGGm<{YWf?^7YxJnkQC5ul^G#8mp1#`Nu3luGY zZ$^(;tdY{Bx7y5R7q!3}#T^CFB(9{VFYkW!y13EEnXUCj0~Lgxvfd<2ViIyiAcN&7 zAuE{0wi>n@{~K>okZsKUNdxp5fXh&YIzlybl%8udwCxp*dN7vdpt=5XUVPT^6z_Q@ z<5Z6W0Ojxd6uSs{Jg$!pn7f{1)NB^4{%%PcbUmi?!J5d(0LBL=wj3l0gz1VBag;dcmNu5U z{x>EQKzOV}+f@b2^XZ~W{jl69W~u9`#T}MwEqO2AZhCbMrX!Ln=k2G*AqdMv^kpB$ zwBn^GWdII-&izKx4)e)cRT?&Sa@ew(Z4W5h^L4=YmT1|3G0W>0pM3V^pJ0s*?$>|c z%U*y2c-SXUmFTY}NpO4#%5JZ}{<*TMcF0*4UkpJVT7ZYb#Pdgk&X=>|QYWGKa`&@M znlmK=i3q%ajtd)@^oKj!>`6m@f?KSnFsSj{sGaB0CW-FqGsV_Z>g4ovelM#1E&> zI8myWCyN^;Dt}9K6O%xvqgh43A}lMJetX(%-!rp$x;arDNW5HTpHWX=JHd@T zyarZxQTl2BCDx*np;D{%m-R|iwe#gRzyyfUH7ByR1!P(O8!wnLbZR@2NMtp|8UJ2i zdi+JeAxIb}{$mDrT!GUN=}EP8SQDq63ugs^y|ebWs}Wh|v!>O*S#56eMLwXEO#c}#%rdqndKd|;*15CUG8k07$M5+a!bT%xbj4{=KH2{knLw`M!|8 zWidgSnVE?W4eDU!to?QOv!(8H1e=jjlNkHd6o+6jlZF{^exe?yS-Z*qEzuw2m5*Ew z<7PXgMTT_~E*lFzMj$_UE>nC@l~Vm1dEkZcfKmQZqwkjeE<%$X>t19h$On518UFOi zsPlO(%!MErRh5~UPsL6a5+=pd9~6u~DcwUL_6-lkS+!bU!4h25z?$DMTd4G%W%tC? zEhY#DM~aj@f*S`E5ysv-#Zn?IB0@ls6q6|NE5B6A?&HnogKJ}x>Hj?&K1=`&Aq60V zFf}p_{)P+=6Qu>gQv``opb5t~eV4+6Ay>zQF#>@g{qWpX4!Pu0_VDCmE?=;)1BXEn ztgl!oQs0F|BesE2i3v}wlFg4LSsI2Qr>sLy!qONyyWplnD<8yy1(M-QvxE3ez&0&7 z^!#78)F$`TQJO_PH-M~TufDkCu=bPFPW?`!>Dg^mZz{QcMar&AtZdcfG^UHoYw2Ei z;dXL==D*EK@(r|ZI^>3?;llWUFS+!U$24-D!QYS%dtbiXwH_Hwv#F(A>h$h1OOm#+ z^Ead0N7>Q3SAJl-^5ThwB8?2!hb=2bncc^#!HwF(NLc~FgXAJtL@C9`VY6Hf7S-A; zmc@XS46$JtLWgln;-av=qhR->jsFP$iff-jBlxJY|HNI*r-y7Ge? z5sw!gUS!Qo11-E{Oe_I{6UT{?!cWyp@f~BirLV3+h!e;?{7J$2!fC?f`_`3T>)KrA zSISI#uXGUt39#zH*tj?eA0$O0jno#&L?|JY;A~D)aFBG%@k7dn&tvQ2b_^O~A}s-a zJ_sBK#-X1fj==rq!z&WOqcbDIiDXi+DIed0n)rj1C1@+$SO1g3_~bj>LAqxR(g zD4z+00Z}2IeEZvTfgv^o78VN@2Pu|Is|fj@9EIPlxz<8UY#iDwCZ4IHBh!DCi^Yyz z48=k>i;=JeZu(_MTow3UL6rY?0VnN$&pL~G-ku5qVFZ1Cy`x^xQ$;fG=L=2!mxz%F ziuQA#UTmb)DFRC(C(Y!WA+rJu=;U|2)M%*DZ3k6~p5JUg)$p}nE!V=4Y5ufwz0 z-Fjk%91FHp*0*|jJld4{HEs|Lzc4|CDght`#izgtG9wUHaAQJ1Cl3m@(qI@u#vxS> zbQA$ZmIjdnXfJ0e80;FpK7`E04-s?Pew{oX`3G2#8Mqwj0b(a2=cJXhO2bB=zu^b^ zp1a`(udaRfzvM4J37Pgpmi~}c-*7xAu*ml8pLp@|t9N-QO3_QUMe%s^b?W^q@;#Q@vJgdddYY%0q^ZVq?@iz1<^I#4z~$W4XYEGM z^S(5byOY&o@8V(uucy;H!K3wR_sAekGtYsRms#&+N+5Qc<(@jVL~3;xb4d@3&^5*)Z9BxJ4- zgpCXXKlsKLO2IZOLWgWfF1&A;YB|du5gppLxAo$P+!_ShI-VH`gnNW7G5$sXbGT5n z6C^GR@_Ct$2qp8$w+fuiGrOWO@OZkQ(dV|THfpVE+ghNp_^f-5r4P6%14a|G&9aes z-yc2GL6Dd)Mj*pSE{3YMhgT)Iwj9qBgI{vlw{y76eAyPMdHppoJ#yH!pB$+n+WlOh zUUGzQu~k{4qYJRKC7ahpi@(<1cHc<7?~}Lpqv>tHR8_(WpZpBH-0YpFVESVCP9xe$ zz4w>c9ITh?Jl2*3W|~a?n+3R6n`_4*@s4`qQEl5?8PW9?>7Lk?bP-=>$vD?X7-Qh( zBq+;({(Di+SVmIkGGQcb5No3j{f(H|ld3m<94tKb2qRZq>r)OT6}igV*S={&zcRvr zZo=L?#5D|=#Agzr6kNQ=_ zP|6!5DrCD>6YsF#|2i-hFZT335u3WQ0mf5PMZeW>x{Op0puewu^(rwNRUg->sj!1m z8(A{2>HwuSbLP~hkClzAuyM#A>&+%1>y*+a!D&{b2&mz-5nnoyDZzs*^~l2n6JtN` zyClch1yK|O|8i^JhdxqpPF$dWT1Y3BwBzrod}Izgj9saryC1at8oD5F;C15)YQ69P zr@er?YS%x-tVHB4J+kyj0DZ(KWTG02EO0T3ZX{mEaGNl}J8NqBN3-JXY}h z9uaS|jn}Q!P-=}t0;}!MT5gyXSKsakDPeL+i#<~~De5{<$Kx&EXB|$2uS#mu&64f1 z69PBsHfLV91JXPwR4W8Vr~@h+vJUdvEr!bv7Q_O!|9Vtn1aryxpwp5D-=wbIb+rOZ z)+!HBSY`v0D=Xo7YU8kWs(sJ0>J_Kt+oCUf%0><-p!=wjU5-(|5avnGQ1z3vH9c(Z z9s6@3ZB+gbSsA(hG|yC_ZyqutbdY%3A7y2PCUWbO&9CTT$Y`@!7z zbl399w!`$h;t4O4nT8z&!R8j}--lapAXN=D_4zr_a0CzB({1PLAfLt9^YOeiS=Z$V z1eYFEa7*m`a?{++<9RGOEBIzQm;yqr!v*A)Yr86pb6CYbFs3#e={?wYdU4vstrwD~ zxsYH+m9MAOA9USr%t^lS<>?H$6~31&DJy;OSg~O1)@5-V!3O{qquUN$yvP3>L9pFk z4`oS}5rms=(0lJQ@59<+0~caNsVK34>*G1c`Ska(LTp>*JXZ!@S1<2=`L0wOq-@@Z z|5wyOyxvPOc!lF)Ht76SliTB(dCrvnMw8^3oQ43SUa7rVqLep78C5wX+0;b@3itNf zE8{Sj$X;x)!nPK}f+1&&Pi-j|y0`RFcLQE)5ZEv%{pLHMQ-m+BqB{{Agjo zq}^7RTjTfTEF=$DU$JecQ|zOpy^gc)HvD&|X>JJx)*uoL2o%^=db$BUj1jad)e*w+ z@gBNrs;c@vNB7z5?eFI%$I+pt3#>Tta`vGGbo)P98~yeB22<12GRrl^%a0kTc>aII}*28;bnK0I-1Ds zY^trL#p7{Ii$OgxiiEY$?#Ye0pT}<8 zl_smj7Nr+qZsfjXdBR4U&3zz{QXdCsB9rH$RvqS2=D2cDzQEY@^^PC>8COL@g7=|0e6M%5^^)EHa zHe1YcWbCpmOnd-BX#mW!&0$YxD8?ANKoK}0X>XnXbxrCo(b0OP@1_kOi*NvT;U_WD zB2hNmsfkaBr|9H((&7^E{z6-Z@<3$td@3F_rIjcTvEB|qtTA%#>>06X0eR?Sw(JuEos<*2J2X| zUf68-P{yV2yHmx-G&wEft5)}qX@`aV~oT9P# zNPW8L*$ly0MXLOy-%-&&?GNY{mD@b0mV;T2Ri)s^N^T3tf2vvr z1<0pLXNg2R%*3OBrI8RtjrutPQ9hX`tM&j#uyiPKa7b`igEB8N&wD3&b|uOH@C{3-htWZ$us_W@(2^Y(K0@djt-mh58@ z_+q+9k3pmSAV;zIJ9|LPX~xH*{9|iohH}{_PTUVnFn{S2E2~p4FUHsuoDjApVPVP^BXbpDrO>4)w&4H@#yLpG-&g*nM( zH2NjQz^J3|c2#*-!K~N3nkyo!UbXD{mkGmZZg#TcY?qV!`f&EuZC9l4Zpm)2qMFq6 zL@N}>FHZ0^Sj@Y@LExgGR7EgrkB6za&p*@OmVSw}SQZOg1dT0>_;k(<&$cTNj1%B; zO1vA5rjHwzSQ8Kz{;pwx=)C-WxUi=6tUciOZC-*py!(I?7Ur>IZ41#pT3O|amJAdo zPbw9YQC;;_N@2{@ViUJgYd?zB!kqvrQSD|=oK4uU0jp~jz3hY-@3lqv zzdY57-I1we$z*wL-1`gh|BhbdyNDWfcvuw3E~eOSrAO|YN)0}+{F{d2(0x0&dXVGS zo0Ov8V7c`(=Y!sx=Pj+3T%Rb&f8>{jkS9H$Ec)a@M7c<)rvf+jdoB{EAukGDf?Pe>- zdn50MX@~f>3pVU9)nBJHSWUz+x$sD^9qL7hONKNY%f#o9Q{dL$Pbj zscfVDqJ)_Xx;d?*&N!2DTU&pWUmkXQy1tr#-Sp#n%XxXWrXd0{PmD0B-U8-s?GF3C zkc&6|VwR!PZrPzr7N7mrMK3)M>tD%(!Hd+S&SN6pm`5<*CbM{RUhjz1$-1hPUPKkd zL5a%7#31ZYEuM>`oJpQHz@B2+JtwdImae>ln9cltyJ(Nhm)mSC75m4-MG2FYz27ex=}UHRrlix)SN@SD|>9sWNFXkb~lbTx+Xei9;I{=G4P%@3pPbj9hK4=_b${ z<3sq&sxL{{c#6yBvlR3fyn`I-YmCM3O*Umn!_luX)!gWJd3e%#brP?S-&OuU7Jypj zz6);YnI^+dIOEN<{Ch)%T@0u1GbJv+4Xub>afWg~BT&b|c}VL%fi%90mv)`JetY?8 zGJz*s!S{T=ikRqmc;05U^RLin^8EF~Q=Ys*fm==*)7T25H$eQtwky*l?=D>b5D12m z0x6YL+6$9op#)p!WR-ane=v1=Y@{}~^(ltrzDGyHX8jn1L-Apnupg3o+peK@JS+uyCh)>HDFOa(@obeCXvq>3ky&?%0Rrt6mx=VRpedzHm1BQ;C(KXt zdi*r|dX+;{-Ek77=jFy_yIs3mBEqMbA$XO=B{PJ%`GedKz7LPEKf&?TBZ&w-om_~a z$w>=kN>-#&SA~AJ1ztkIehndtdFpF~uW(Tmj)_yfvrQ2Bdw81#^+ro=ArcwsKV@fp zu1Im1^7Lh$3yP*xvufoT9Az47wzQI8ybk~NA}&wc?wSsW1$1uvhUY!3{_t#C znoZ_%@GCd9CdCo{$r)cvEN{3>!2bNrgcwoj@CQplI*Gv_OXs&oCjN1E; zI0764e+fs0*PNKPMI%aIPw+_$1%|N~cBYUmUKJiDJm~Sa;i0zy(+5Y6G!|H^X;g_N z0%a^}kaoG;dup(GpSCLXeHfNiQN9$Ncw;pVoiVG@;b2FAc$ASCxl+VH*i03Q76X-1 zKYR!n8)v2v@z+dNix5E zJ@+V~D~F*>*E6d3dr3EFXxZLpdoM#6(PMPajX75kaqaW5NEq zu0!E8#9aP=+T3Xbmg>Z39Zf=?LNXdG-DbiiQ;MUCrAk-OVxCVtdR597na+a;C5gRy z1~k_6oATQ9{ch1FyPckELt$w@>t&Ty!8G9X1yD$*qs$GOGO`-bOmV=ZiNzXK3fsiGZ>29p*ZpOUuC-(ohtslA2bY@aZahbr~(Q zPGI01`$>xlfy}%@_~zwA#v{TPyMw_G z*E;hdpdOYmN}>H#;X2u(Ie>8jq)I{Zls-8zw(2u;n0l zFf6>u@Rkxf+1;Kkx6hv z7s?{YtkRQ}L|=ZfT#6M8!_dWe>IB1x5P)KyQMW=Wn=eTGBswv`sJ)hpubs|UR~F+B z)Xji{T`|dgg^|Lr(HHFVwN77Xa`fZ7Lk@@O=SCu#J3hd0Tko3M-Q{$tMX7V@ z8_-&b$l#*?{MkWkZDRJqwR}-RDN)Mw?r=qcARLk}U!E_AufI>A$-Q5qWib9(r`<0l z%blKa_`K6Or&ShTU9C#!_7E=gWJRYZFV}Nc!cK?d4z54|<5NV^&ar|X?}Sc6u2_3W z-`ycI<~~yQSik!`s5|QtZ50#NRW6$OaP|nH>PR5gVSp)7ro>%*78uJZy zi&gUFgCd5gXqSBMwxgFiK9qhwod70b`sLb-2pvYcH=0?mb-$kZpyD&br~;)^-A}ge zbik(M9r{OpVY+d~3=OgkU31nVITJZo9)+b2E?9CYQ}EFIJVz-Ynp|2^0&Kk0@oGVv zRp1uK(6myWw9D^l;L#X$)B>eH5k7d4Rf2OjX?)y z+<;i(FNV8uFrfUf7jiWr8fa?4J9O+{&$(*#)E2L&w4gC$u^mgE=NeYTpO@uBF>3GYp#D($`8UT_md<@kC|7-@uW0K;jGjOFTu<@H9^FcB>2oy}(WXeZ3nV zN>n(1s8m5+-SHku_32!v?A728>_BnrPS{=wTnPf2%!mxv z_33IOH3^+0H@LD9szmUG&2B6g9K=fOd=rUFEqI+{@mhCY!=@k@@#8&R4YEieOlMR6 z2v=G^+K0SUSw>{of}|iYvJ^Siq>57i*gt+fEv2j9yUd7~C&dC^l*NDg?ls=|vtC_o zZ!g#^CjR_B%EVLPnSe-KTf8MHSD2VT%o1-513?aJH6>8$PZO3g8)2aj_<``X5W*AF zb(ZWci9zDC3sbP~$94|L1)r`J)i1Plc(6vx;lS5|hMr0cx7j*Hs?BT=XB zFj1wN`{KTUU!JZCW3eH>)fr#k7uu=F?;|;LQAO$>n{rKvw_mNTx8K|PP&SK7G_TWQ zdh-L{V6n=MOR;<;Vy4MX+vRj->y2prF%5tej?-2`C{Ky7;aI{Y>8&(pI4bm%zXf4o zA)*izHYh95v%oqvWPCBA#c^L#wFLK7DJ!?9G7^gy8Uknp;ra2hVC6*2B8ME(tacZR z50&fWrYN}_=#evyJ%!I-6L6j1v)LegP)aB0rC>{#X6-4h;?#C784kpfvZ5+1e_^Tb zP1|V+`Fi9`-IxX;9%7S=C$l~^180xFobZ1EFs9yPnJ(+)4*o8;6+iCQ{7ecE|D;bP zGHMm&g5FQc4D!>w4?$6k{KnnN_Se@PADEea)~kK&S7GA2Dcl*1Uhd?zYfzU_qW+zk=>b;4Qi&MY z9n3fq)2WU9)qO^d>E3jw<~VZmu2y)s+SV8x_rGN%N@Bg zx%V!YnoXqQ%RWE6h@3SS+!P@Eiq#C|9&ZU&i@H8;JBWXdU2^r-yIfUZqX>$26uYl) z%d5Mxzd^IS&m8TvIZ@%d_HN&N`0XT~6e$WGLxSPIPNsE`L z8KhpV$Q1lbG^=?vnCi?99Z;vOfvJ$6)CoP`_tqskNLRQbcTYe4RzgK&TA>y%) z&BABaaa;7)KUr+-Bf_OAnswPP9lAbS;AN+PBOUlM`aUj34I&N7!!CNL*m=iqx{{LP zBUmn*GVw>#Y2X+`W7Frrafn2~e(Wsih)|LWhQ(s#Q!r)!O42ZhF5G4h^sV7+tsEMq z70H$ZBhD)U-$O-07!K>GcgH6=?nj~HU_!LY_^$nI^YcQ`OAKb2JZ`OD?*`OQ*mReV zvvmDnkYdVVz2QQnnSbfL@c~ii^tQculku{K(T0x_jA=AK()i%1^?9`c`B|6&KUZ}H zIW9|%Nxwz4*8S#QHUp2N`}9^4<$ltHdF**RgJH;^=1tIKGl$>x=2#gNlfhv!m;%*E zdf8cXe!5-XOV%M%$Mc3}#pd`Q&0oFw4Q|E=cpXdTFzGko1dzc~Q579ET)6mL1T{K$ z>3dw#4G}vYzTRy-D~v=s z%ZCi+iY;QL$;Len<7t2z&%bge0WLYD#dVKZiC-hpmPIgf&xhYTCEmf;ObYsL=5S&N zmr=Jo9`kwM9eeKG`?oNSr*p7nk0Ji6ZYRxP^I!gf53mr9hB}}33yTdr5CT|_lkhj8 zb5-k~7Y(|)8cqz{UyEDBuS{b2+4oB#nfbkQYP~BpYdL9FKU@DKlLj5SqziB@OMnt*Uex%83R7ohKGjIj>O{gRi=u9;8vA?H#g9F)&yIO z6dNQulo0zLdBQ#3bzW5sfvY;z*@(sC|8ywAe}Jin7a@{i2r$SCUa^>CA>dp2^RgINCZCkP3|m&EEt1`i~qVNzA~M2&0#Z-B1!H3HBnKBcbB=(%Z2W2>euqL zBx%JOJjjxUfltF~k^CQy`S~Q9o9E$Q-!0ixxk^EAztHPzb5S|qirvU`L>JJY zJgSl6f3uf9e7BK(f3b2if7PwkY|{6fS&CS;j|ZMV`SU8D@_bMsIk zJHcHm2I#Ew;^nxV{7#_uMabpNBIGnp5kS1L-e{S&q9GOX-r$F`TJDfySkJe*3VL2k z#lKSVE2A#TO~rtq#Fa@OERMo}E&#zOmz1V)Zx>tNDGHN~oZH`Rm+47>vQ2~i-JJg$ z-%}*Bco4Aj;2E*{s@bsFQX7qSbxYD2DN@GYC^F2F+gO&BB3qJWHk!%vpsuD4@E@lL z%=bUVE}h?S(J15y@BuG&#N6>!SaDR?N-1osAz$~)P+aN`w~GM{64zZLlaLcclhi-5 z{Sq<6{7(00CU+b4YNO`1x!sK{_nbz+vPO3nUvI{mMz$Fzqc@%giQ*4U?dIrwp&2oi zrQ&zGUT|*rU$z&gqvXF_`)nL3_c5)aML8WAU<%Z*5`XM#tlz=;BMy~m4p z=jRkBDp4dI0HCb@xvYc-llj5TSc~v0eX*&Q z+5Xw6%m*S&7~xu|6(=^*eg=F9518R)=nh z$9Lb4={0dC6Cnws+ALVmQyR^OpmIB6$SkV<2qe4G#RjN!I&&?1zIQ_9!xzT9@ww6o zznBg5H;Nq;djfg^gM_)xuh4BCjGxQ3$9Ps$-X|N~8nK+sYaSDS*S!{0llNL!Z$FV& z0I54#Fv(;zkFc3p64Vm}y5yH+knvDR#?QDs!oR|2f^IZMvSyZ5tU2^Eg_7~^U)NXV z+>FmuFn-q6`8MVXBEOymkQ&2b!QAI_pBxDMU-OViSiB!$5dvKB(lXcj0d`3&VasgS zC&Whk4emJP?g?c;A9W|CY&??E^2hSk0v_j>Rb1A;Xj+6X+m=+WjT^#a#PpZeDc_J% zso37MB7?%5f*aFsAGjV`^`9078ehz{QFs{h-(xRU891O@s4o}-t}v}1wflsZgs~yR z)6}S}?!QMqd?p%fn2<{|3RLfBln9iv0>?nG(^fp48f8Oju!|CHb$t?h((o{G0x8)$ zueR{T$J1Rbwf=?<7wRyWmBDpz9My}wtoGMA?PT~i1RKFx#!A~g;%Oi$%{ZG+XsK!? zY&2>V6Lxcot=3g+qN5QwEqfMczr_Lo$NQ_tb56_Cwt4z8-t+U~$M_1}W>MsTi02xY z8$yH=A^Uy|E}v5}n>ofr(}$8O`7GL|Gl0rN@!=N3ij@QU{*GMETwY%4dAZwa3mr6|*{}HC=>g`r+5=sV z{2*{550A^y+*T_-^@hjl_orwg*WP&V9G^$36paGcQR+#7yI%dBTf4ZFk_(k8=r1w; zi{0`eK%{A`#K?%Cwd(41j+y!8K<_EKvtGQsmu<4!_+L*T6&1sXj0T$|2$SD(45OK! z#eXAiq^vCbT)zD^LIu=c_j6QMebZ&JPwP(yK23+uwUR%=R7nX1wt>fTrT009?QqYT zztBM{8WYg;s2@C^Yv0T_qsmcyx(9R@7{(MNke!@=p8K+VMwUBzyp$&MaXF2~r)=Et zf73hj|Mz>kV2FFSsEh&g4cZkidbILB1n=+9!y72Rnz~vii_y&D=GbP9k=mxd9!!`z zT9=l~!OJ9?rI;4ryr#(eP*^}XH>%atR+n$v*LE4v8G1%-mFY7$prLaPUs#YC zeD&u#?Ofqu`z5ycbfwvVpHxvpLnEnD<_AoGNvz;uO~FL_Q|*BwuTLg}`O!}VuFW?& zxpJ4Xd=Zfen5XldXI?9JpuFIIe{{nc7LfYg|M@EUxdSq^F#g>I-i&yN)i|m&W2X?N zhJ~FDAy7EM66XV4AVGni>s8h}q5JdVHW%x50Ol)6>f<&kfFu!55k?)}JLQ_l3d*(7 zfZ}`#NlhXM?Fo5r<|LwpOFUk#?$B~LW8=QssVJhakZ6t|jy^&eNzVk^* z^1Ll-7D~IFpJVPyyWUdGk5-sUZPU_AX-P>J752j;0Z z{Sa%&rIYh&v%`Fo+U)lBzQJVHW=G4Bpm(fgYRYVv8k#u}P+2SQZ6qVZ>u~fP9UU|F zqaSaNIiZnS@)4-+q)ULAPxT#P8xfJ?Pc0HYPDM&UnX^=7wPKAj^4xm8))|_a**_)n zQeM7Tt*Pwvx634X3;@Kt0$f<4ABYi&td<)Mxh0-E4*O$AGqt{svl8tmGY$jC^U%d= z{@uTwccjZg=#T{E82#oZWg7vPCD39d5`|c4@8eBk3?cqrEC~m3%#{ zC!Nsi1$3LN=5tL#KSZW5PQ_$;ju`MY+lfF_gr0@y zfIng4sShCkC=FK156Uf!Bu7O?4hsSYMMP|O5(rZcQ591$wWDP?Z!Bk};kLDxb)DZy z=6p=?P?{#wIPjft&USuuDLI=}dzr`IxEmh~8KhGgoJ?msA7&|c$_T{ z#S*TytA1Ox2LShh$7{%o}PKXaivvE z!scTbc{P=%jHiXKgU`V}m*uma(v-u?WL%!-{P29}_z8{*Ap2UK&DMRJu5&C1wYCeU zrBAWwZueL%T_yIOd)1~3v&4-e=HOOI!iWZ@!u~onXfq)fxV-U;2*pJMw6L4&$lNQG+}OM|1F zsEi9|L8rw*2W$hTby;~7=NPO9_>XC{`*tSAKn<=~CJH*5F_Bp>F<$`6*9S(Je+sEt z3oCpMz2xK`zl^s*a+@YY<@PN_1z1R}QFnqjEghFLHmm0>7|7ZFXE#Xa-Y&80cT$Ya z?ujx=ke)HFgSWH0cO))TT?;D)Z;!E)0&G`p4ms_s3ac;scXtzMLjE&{TLZ&3mD73> ztI_t)<>auRM+SA1{t!1!0>b}0+#gwU7fS-YsTH>S?;MVJcH@qu!JJ#C#W9NZI7}@r&1)y^z7E-Ly582Vgzi-U{k5WHR;$F7yWMfnO$Ev^uIR6gLmupQ~Q45?+o`fr$j!T za3=N{cL@D5yu9j9j?2k!oednO zeN~M;mG0%X%4kJ2cwtSahqe8MTQ#CpN%V6I5{4r6DlL3?5fu{>NTq(gU<%rmS}O|+ z$-rgZo=phGN6n~Dqg_?>To$hp>1}OhHj5r3C#`oe-e+yHd23xB;!vQUz)p+ICc9uS zCo@3t9Z7psCf-87)k{qFoOD#ZqO=^a)2Uo;DXlp?-2+^(ttwc7tM! zx1w9Gyx2J~j)aB>VeiQk(%LO~=+I9$-IpU=0mPYEeIV}L;M$%gPLuZwwJL&4=jg8Tjd1wgcxxqID8`v7hzWpq>Y{Z_!Zy9u}nZ7GqV-<W*i?0f&UJ+1&c(F%kD&u`GpMIe?#dto4jcq2-T zCmgV{#;`lMP1)E47<*dVPB?^p5XasLow!ArB=IPetY*hV+AL`vQq;XdUi>Z|{|me3 zbuFDu6X&P>4T0l{`^#yRKHdxB`kvI9uWm94)SsDXC2Zw-VjLc~m=_!I*^JzF_FZXw z_X;1gU8Nc4#8;_KDkAx#CIYZ@M8H;gIlsuM_Q}Ce-4ol~I!FX^L=Wa(kcKt`>JAQ@ z7OUu#)qZ}SEl%W}esCk_&yh9{by(18ktmZ!kw_tEW`SmbdYf(vF%dgod0C7BS@OYAoTgcnC`9t&WLC=zd<%>QGD)w{84) zu>Y=B{R9lZo+kiiV#|x>>;Jy%SlbXG-I8_qESJ69u6jP5(!AVG2qh=A-#(I&_+S5C zK8bib^Sm4+VtO3c>qg=3deqs}Z1UVqDw+STAWAtyRr|w@7TVMG*=9kP{pre{hQ6an{|_R6Kpc!@V-%)h9IdaA%FH$vqVN#)vBKu-HpYD1S z?fU(R%lo$WN(TBh%91ksyD&Dn+|)wJ)Cy%r!DyH3#O3?Q&P6fAcVlLKwB{>cvLd6x zC_cr^{NqUQ03%e3h$hx>K_q_1fsuFG{O;j{C?gBvVSJ0yRIhe4EEX)1$%Py~ci zJe}1O;TRoUibQkI$Pjy*B_@2Oi^F052OHFb^*fFQ(iacjqY^yG#62!6%L<$Dn*1uG zGaw_CaFHyPK&z=-(J&(#1Wl>}mO(iiX8IS-I!pe*cRacv>S<9FLxF=t zoIuMUWWdlpxQ-N_S)0-%@zez;{QI=T-_MD0mO=SgQRKm)Eq5}@ei4UFoUckQ@#nZD zoi#iurqyltHYkU4)%sp<-xWzbr_S_oIFm5@ens>Vf;PMNsy<<^yoHI~>H#49R{S?| zg%Wq)Q}H*~M^~=b%SUMUhNjL-=u;-3CaCOluN{SbK-6EiFMNHLv{M`~%M^}t$_us|Rng0K*4P+9~h-cXQEVnjeB%oSOLEmgA8nUF97 zL(Ww+vPFctQ*pcTUKlT=l=mV;tb{=(Eln4YR>I6IM5JNh)3k8~At)#z2$U$Lbt-^f z0RgN4)w5@P@8)_2qL>L#fYxA$XCY99wOkRwc=ln&u;)xxj~Y3O0P7IPqP61pG?qY6 zX{EgYU;>FJrQleILei9`e-TWlP#iil3rt0(1d1w#5m=DYnWv4{N<#omY^7I2JrNQs zg346i811cONC|{VF^Sg1snsF^(g2ADlkzSY*wV){oD+dg#p5+AA_zliEf5mwl*J`T znx78>iNFbiL~G?mG(>65+$om}FoZOmw@N9m6ie!&Q9hlju@EVxI+bfuN=ZddpcGXq z9|;0tD4pumq)RkXE&^RiQv4^}Y5$bH{^x?$>1n-SI#^XlQ6?*x0(Es&9YqB(3%(5CJMsVQ9Q% z0L5Zq?6?URo^wo8E)a+HwY2~O9fCQV#p`q4TD78d=j~TXQa}Lbyh%CpJ`E28GY5fY zPH8-dS%QG9t*F>AS4@qRKF33h(aJ%*qEGDM@Lsf5l>u3Z;Eht^08pUR2guz2zOw*x zYQczSF&fH2ND(Ra+63fSx+JDj8_O8Q46ZC!T5IoFYdCh$n$rh^{%~QfZu}=hkz!6Y z4ZIhp5u|sxhXjK%p4n&kPM|;xmn;=yf5LBF0WZ0;)oRr?X|H_BXVMn@-PtZy^=Y=86L}}UK z7A+JJkTwQ@_ncZt>8W-l+P{ZV@_i@Q`L&DR`n_xZvrG+iTN|Gi1VSK<{If5EE_t<>2Oq{l0Qi zQtYVC=S^0Yt#0=mYf&vNy;R)Rn8jgVJ+-5w<4hA&)#PT)TJXxNZya~jex&j9TeC^_kipZ8zFqSc$vI`hApdo+w6GyYe%nG z*1k3$1cB~oF9IOtvRU1;p@Hk_lv2(!fI=Y}G`RoqM}O{keD2h9uKvq?Pabu^ZUD;V zQq%B3pUS_$EXL?`(ytV;uxI#~j8P(D44i{f#LNJ~Ks#{aoKb;Kgg${RK>BE}gh7P> zE%2H=iDxDv^AB1YBAr%|a77og!Yb$qv9JPZ2#EwNtVxMDBAt%ObxGD?d`<>>;TLNrbwViv8b!l3Yf1l`ugrwL)qdh6ZqUVhWUwd)=G zgAY6vz;EYwPhV|=RPCAMm1%SSA(Ee9`_ea}InUu|CYpNTBH2`7PUf7UY z+fm%!*0Bk|mDk?3p>@SI-#%x~f(c*w+LbN6>b9OVE=s&Gh@_)qqbDH|@03 z)+ZcsVA*!GZd`8}K>6&`jy(O`OD7I#88dEVdwYBTetiJ^-2s#?bU84zRwA4WH36|@ z=e;qSxx%wYqzL~0$7W8LG^$rqj=eQHkdJk3bQMKYIyy4|VRrd!&^31vpcp5Lf{%Nm zf3ycBZM;$>Lc*NO>ez{6$ruXAbahoPzMMp%&VnQi0_WkJ7v}0*P>xv$sHDva5!Y5_ zy4qHD3<%_(L)_Di|FiJqHBq$*kP2}b6w1~ZO+=)`139Dq=kELZ_3OX=l!@<8r1*po z@$f+qtXZ@1t+!_Hx%*D3i!q&ovyf+j2ti0Gl20@a5W#sCa1fZspMJ4VpO%rs2PDad z7gPM*sacY?3nC)9P|bd4>6+H|9k(CrZLGXA#<;(A*!nwU`Cfn4be&VDNU}H1^>#D1jQrm1Zsj;D{Pjin6BM0xY-PBwzH+WFLX;UUOH`RxkV7Fa&tf^}lGivBz zhweFe#Gsyaxt=|H3>-M1CLi`6*mTSn_UqlVsSuU7o4VD6NnZ_{PZrpVDeGi>*?BV%b##d;03Gcnp{wBT+W>G}KJ{RiW z{`Wn%{``)~TTQI5t9CA(9*FmjNR*;)UH;=yqlOLX+nl%v0?z{B)cFa3JrjYYLc`kW zau9*ANScV1%LMPtTlmx4@A>_oA9?Z;Ripub=0WgJ!|uZu#{iPt1Pk@n>Iq`|XCFJ^J)}xq5l4jw=7<~Xq(C7y}6@&<<-~iJ$<+4o=s8W zjaF%|5Md&!q!uw(p2`pw5%xr>BaMVvG^}F*H-Fn+^4m@yQP2zRd zz;kLFP^Dd7lwx6FW>Qc{^CviUE~Z|Ditj?id6x~%!;d}x=;JdFoW7mqRB2N|Aw3kc zSE?(5Bg~!vPER4_e@y=x=PS(41O+fNv!u=oqOLdy=R@_43%)t~?RR$Dd0MG#i4==Z z#}E-1qu9ISPB>jFGjZIA*g8q$E+T0-sWZv*U-G<8vtqjWHvVN0fgqebdW2)?v(01z z5(no+QxGLGpii$MeVe^Vvw(=o4llj(dQ*@3-FDdh;YVJ0^|_Z%I_3Zm)K=9`9oJ|* zJWIdkmVv#IczkZB9TF$j2{9&*9t9w_P^7$oV5W{AWj$gGO<_6a!Grq^9nv2F3t}q( z^=hcwZ_gbPk0{|jy?gZS(<5zdWCe-jvzdK&n@3PJM<%`=2alalt2KDUGb#YiwPGn%8 zmLYu+B?8IVh^I~%uC;#j$!GT8eOm9v+AX<6{{fp;0!8B4WO>=zwkKYEC!24)=iaBk zddi^@oaR7@Z^*xKs4+G?!{NRX+`l7@yz94F9$K=N5~>=d+8sw1%~@>SK@ho5@s ztvT9=m!Z~vXQ-C@UNi#LAjvY(%P+TllkZl`io%w($_mqW@C z=_K(?8WP7$p{A@M?|n8f0*MpHtc=o$J+3fOqDuEIK*r;HgR3 z&3^ao)6Ti{+V5Pt!{lMHb&tRN*3rjCM%7+=_098^EdSy6j`CKF7Gln1^cC0qa{1b| z#~pd_=0f|AZ}|;7?7z=;-JGr6cn?I3Hs8DcXUmr^JMPE>Tg%apZ@nY2=8yw+EtVXG zl2!Vtx92rB_ZvTQxEJIC67~W>BQ%IznQdMLQ9ctmrV@7;ovoq}P>GA-46#-@h;YE# z0AZM`Z|Fnh#Jfz85r~yUGm&UUe8QK$IB-ZGwyenKGAU_yrKhAmKTR$S6|*8mM5gSl zwgjN2v0pA%4}burI1?HOV$a$r#ATvD!hk%oVF18dPQ(*bKBK%Z>P)qO66ds4o~&rj zhZz8#ePpds29bnSDuV!k7*$=HO)r~QDunl545=_wfP%Qh!ixz5(xkle+5{eA6V|L* ziLlRS4FC@$EU-4CHH=n3;@CQu(l!P#R``HJ_sgg}fW?az-+TYFmt1%vGn{88QV>$| z#S@PiI&d&s)`8FJ3@QUVr~VIs{*h?TKLg#?#-|1m6eCYW=^R*Vtx|^L?XaO2tmd^Ugc%xaV#= zMfOvB1hO!*gb1IQ@#vtwJ->3|!DpZQ-O_QNHzs8ETH)#E-&($E&8~awkj-bTj{wda zHD}J!*JjV{*T3&}Ta8idl`=D4d}G9jVG9;4T(Wfe-h1uZTwk+v(ej5Ld#SCp{mwr< zHf7?l;X?=AaMLX(fBEnu4%pKO1F;9XSZV;sr|{dH&h`_t~zyShgEo5P{Zea}vKe>-8(nKWpmvkpMQX zTr=b8XAU`FR}t}!VX$h|s^;e2O3{-ewQgVRT(3gw{Vpgc2U_P(yG=u$B=B8z3;(i`uFQQZv2o~ zEIbE+8PI=dQ+>4xD2nYP55L&Hu{?T2ztQ7{0zo>)slYt{>a0Nn2F+hQclF9myX~<{ z&+06I#Kr6xKwzj8$A5YF>8c>uX6n|n=gr@K!q{RldSl_daU+I2_4G6KbyBHqa$4(h**-br>Grm^sZ+NeG@zvvCE4m=<(k%~o|!pr z!tk2l+$Wpo;DG{%4-GrFhuT{-ei?079)* znlS#E>h9f4zuJaYf(JMX^Jl*13$xqqL=C}Cq1 z1X>gGU$^SoddpqC@1R{vx*E{+p>tuS%vyD}O?7TnsTS+R2hXLl8Az#gKWV->0CJ9r zNNa^o)j^-?0f~fRz$^r%luE6xu8OQJ+MJf8s>J$~H|L`+>?e<;C`FE)R%DF2;U{h>rk~#Xmq)`eH*@C9<*U~1vi*cU&CNf%^X{MDa%Zl- z=7C3Nyfx?DJ$BhPH0qig|L5^1Ug&6x=FVC0hkG8JK7H4_-@I|d#POq& zBzgGh=g#@cNr1S-dB+0=G(Yv!%$Amh9=-cs_|0qQ&!4}!t^JW1Prv=v!rgY;Hqdn4 z^|w9!;%fu?4gJGie=Zf{$rDB{TDkI)%dgwmT3Ww)-JkA$FtTpyR$~BHD6~EB*elcb zoKja^^TNw-$1dJ!+Qf3f8N>bhw>Z{GZ3)5=lv`nQAhICG-4quZJd> zwQ$ADufFw#Lq0#CZ!gCL;?S5UpPOmIV5cb)?|tBjhaP!+|9$olqCfumiL1W<Q$R|+F{a$O~r3s_QP_tDGYPB-+pJGzI}%dY7yr}J(tFsTzVj9=yyDuQY~Ea6vwr3O z{PBS>Q@z#LA%)0(>+)+~edCSD%aSF__tEAbT)+iMO`n-!S@6n^@@FD#!y5!o9 zLfL3DW5$ysM-Ff9*^pT7dVKr~ZaH*EQvUULU$((}f7&t$n{33IbbVFUMV0|*oksIJ zGaR?vk9=|_@2>i^4_dYF+rh`!ynju`{_CQyO^8UeCg((Jtu<2J7Nnz`l9VALt;-VW zGJ`(EOijl`=PGg8&f>a%2+RN|lQFYqFSV9;+Hop?9roJg;iq2MYnN%WXD^vK^PO96 zyu4RK?c!ytPe1SSe7<(|x^?$I_~`e)cggUL4EyNNEHH6nnsAYNAq{4Kn1^K6~%H z`?gbBJCf7RxMa?}1yL-ozW(m@*MGCBuD-c%<7HP~v)@5`RR@_M%pZ8b9^(f0efG7v zKfUc2M;~=S&KPl8SQIG$L@NEDw6e@WU=Rkyq|}(L6(2wK{LG^c`CNTITPSqoGc^fB zkxnn=fB`M{Jn(2n1sgVPh>9|JKp$pHpQQGt8~-s#&5;qq2i<$m!x_cv3dN{U>esJN zx?C9oV6Dq!LjYem^58Sh{Kk^ys~UUsn7d%!X{Vg{_>(gyjve-w2cI23cHFSRgU&eX z%0mu0@c1M40dUi;cinvZT{nN{Yq@;r4X(QSf-uytys#|;}e^NsmGxasGo zpKxR@pZ75P?lpbK2_xn%UiDuW-gx#|_D^>|Vlw$tPye!^Y^iK+{n>A}pYpw5{rb=Q z?mhj~;|~LH<@GO-5z`If5gFim7P8Bn^*kycYi+j zj4wr2c@Y5h4b4HA>(i_M$wwT1=UtEAaQQ_}5L@nI4{B=cmCNN@J38KeXa1RI?y>b& z<4-!_Ffd06tB=do`TvG)YvWUc$a{3%KgK=~r4lG2?>SLnmYCo@8LbqU(>v*}+iuCN z`SCVK+JJPOlq71)_4&Q!Yh9iX`l}`J9`Fas-MUt`wo>BJWoiHwBS&e1fH_T~md=J% znzw};Ce?K$rQrQv-5&oq7y{tMm)=~xa`hEg-Qc32wP-hQT4`;(cGcQ}{Rj7Is4d3P z-~oO5w)A(xtJiGk+0ZzAa7($osV3JjdGwIQOIHH0&QF;zDc$GRTTPky=DPqA?{we+ zIOluy?pbIr%v-Q>(zqds_|Rn6Z`{0k)%wvRMwSa5_4U=$CX7qOHP(dv`t(`fx~Wi7 zRk@z?-kAUDtl7Ex{NB^2yTq~Oo=rUl^zRFBV`DDNkccO!Y*iJAonrt3pH=}VO_?B^ z^UnN^j`pUex{eL)fevoI@jDlse^p2O#;=`rY`J75NSIAF%*^!ZnO@0K52PTevz-ROjfWHM^e>a|zh@S~fqyL4c4BY?j={_L-*bp0K3w(NyC4wsL)no zriP}5=HB&;sJUmaY>)@AZ1uYF<3TgrF zPz3;v(zI5@HV%{n;H-m?Qc5bt$SO%(Q%%kHuDbaC2cLf7*{3q0KINq2d-v(#tTWL6 zG~$fE6W#e@pBm`B__#Fz4Jgq8kOW$`3TRH5#954u7#ohL;AG5_zE>u&*v0a}a6gO5G&l~ayB?(oBpJbb?k z&pxWTw&9QWJ~4UPbgI{|Ugn@aEk4ix!O>K4ij}{+ruY z3jz0L@Q;un@t4h2tl}n{^0w|81k6fXYv|IP|OE0$-Hq=zt0`Qa+qr`$c zl4$PY72p2uji1|n$Lb&#DZOb!sku7%*-tNf__61HaPzNn`9QPLDNCUW+Y6hQE?ZHE zqV}>|wPH2f=pUeI?Z&?+2oR9(XkR#g$>vg2wszTyWuDkUDUu8ffTo(7O=~*R^{4N# zw=DOZ1wsOOL z_djU>hGTdDCd}SDm-V;jWl%PT;vO$SqYM;)K)G5%0=GtdMG_)c<*_0-2GU)_s5Px`?T$*o`3RDM3OTqGzx$sRbSg< z&8pV#UGt+tp?J#iN7vO>0cfhPdF;=R9=CK!Kx)&5);;#x_2d%|^2_61)HfwFWHe08G&B8p-j z+NalfXP@@7pZ(A8s_VRX6O{k!ysrcbal$FdZ~p=P9(m-Y#0mStwo@kE{lH^yzyA8y zPQDhv^xb#4@Um;q`O3-FRr%PJ&i=|NS6}c8^X)717hf=Ss|lrub)X3_+GtIiZ1SBOer|#sE3^#l|M~s*N*G3kMkxSc zP?ZgXtFOFy(W3Q}r%jl?*A4*o|NQjJZ}|T3-t~ukez&*hEIs$^Z})F$8a8rhL)`}J zI51l41f8_pfl;Y@AfqXx2!IJBP^wrgAF|KxYnE>~^DE!!(W9ZQZT%OIIduQ&JDqX* z(ciuDrW3z(-pG+dM+_P2;RVnt!_dVzIqvZNH?C?s@4PGXHC3YGZ=QDs0Hu%%BxME- zjpTBw7?tvS0OAJBBkg=e1m)nl)@_9thac784&K>T@MKYQ5V0p(8a zv#LO6i~%ri{OD1mhMaWbnWvw2+yQ&<9>?B$7!5-lhN=|NmDl_f&_S3PGI+@6_t`0d z5KKxq_}NOel#d3Byzs`XO~oj3Qck2Cb2*WJ`&TJW-??nLoVXWWo?VPw?70;C(tpMk z_^iE(5qpuBX1=*>%9})Z{iedA z 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�xUe?%;UlF~GyVG6&43@tJA z_opTu^TCpHi*F`>E}eN6!L)(e_QdvRl=u;}@gr~|jABD@e4l6(257$ET3OYH($*vM z;ny&HT3NIQW02Q4vZX&+O|M!)s$czvI|JAhXbsbTQzbL#wA7}7kWdm32*TylYn#pD zbV|qWK!+7rFjgxmK27fL2LrF&&Ui#P(hy4}Kf7Pr^7M+Ymbi#=(WJ$I;^CM@ASNfz zA)gkWR<)kKX3L)|(23YG8Md(U(!zdvwN5(57l?N?I%Od>ZX^6H!RAO-meiznB%Oj! z%vcgBL^Gmze^UFw=zc;mR7QAEuhZkNEPJs9)Y#6eD;tN?!;HlE8;XiLA z=UoH~2(wqhIvaZ%HNJVpbdBdoAi z&P(FqX28vZ#H080_Zt>SVc$h^BeM^~2kysK~>ku_&Xw_QHbZ9r^MVZ1h%vso_1^H_8DXU=^rpODvp{ z#|%h3sj$OW%dLfA29oC(V}^<+p9|Q7E!o?z!TL@a3l*A8DEa=cnbr`yweFS>dpq8< z-lu;AiNa%&e@3#lQkb23_scN!wRsGCY9FsLYM+OL%o9a?Addz!@&X@&E*}DepRabD zwTyya#|5z|d^T#l1BL8^?wkyrJ7ETX7#f&V<-C`-SXatc%C?j3BNH9g2|>7&SXQ!3 ziD(A*`I7g`FIU-Wn$+m4S%C)abgvZ^<=&TH9qz<_(R&e!`&%=;ZlWO@B)~bE; zivj=VYl8dC2vjBeIIE|Uy${Q&zB?p&6=)7t{*KDAs-6IIvPjvMso5)2PH5)sB80?p zd@|Ez^y&TR?SP(Vxp3gNe>4^OamMFuch;%L%S)u!LxTu zt$SMZYI z8L-H`=nw5#!l-*@B}Z1Z5b(CqUTwUpo;@t$5VnBXat?wzO!mfd0X}-ZXeeTYQp7Go zQ247pJ?^7Mav09yenT3&Z2(pZT=S>a2JLwFv0Xf$!NMFH-p(A?+I-J@l+W6)?hu|l zHfjwmMMhWWt<=3-&XpvTg_@-%iPg({TnAb2UXO6vG$OaTc{c(N&_?4n+{fZ{jg0~q zS=U<57fNhp+wwNJN~g7)tKm4Dx0k#(pZ*OK%&yxm_s?2S_xwFJc3Ntf#_nl7=?y&O zckdwMcjggn@6)|Cr+ts*V; zy}ZUhB9JJ*?mK$FIXN2U=DYOj^&a0P z3f;^^y3h2TwpKa44n`cmXOuE29deawf)@i@&7q}h$j(8#0!QWPb8nWGAX81>cTyS^ z*y5B#?~XaCz4;H@zkQ>u6R%#UMECy4f1T7Y$n>6mGDYcL`h92ctk?8=0yx+EeE5Db zwtVOLBD9c9_k&!QUy66a&vCnaC4bZW^FBwsT_2|3t@xkf`Nvm#XcDBeiQJ4qyF6je zW80t!;p;8oE)TnXo6W$zt%*xIX02)@kXjTFlvaiQ5K%<#D*>f?1 z^744YXLC;F1R`JQ8{IU&^|?N>bF^93J}TVv=)N|nMdHnU2=bWx>+|J z&4opRV-z$tnk`Pm+eGC&d&uz>OeD)wpc8an+MebW zxklw5Br$eH;r!rx-=3L2liOsXDm#MUa-?||*yC`N9C^CbEIZ#sZ}>Ld8Q&|M{bPaglH6yjS*4*4nCt&U4Vf6E$t?(qg#( zc9nZM+`-idBT(I*hJ#jP(Ht(#$llOtSDda9_IHY_ zj=X0rs!53=ziu)NucL$r%>zb+t;Pbm?Z%of$7HmpYsujive}+tO?v5cKSiq-al)G`BzYymxf-o{<6OdNQCP=;23 zfTxpa@ar5_OGk=@ZR<>}UURkLq!vJqYrkbh?|GN6@IUj#p<0eC%>GAJ4}Q#hniL2v!%6wMY$afq~Y@ts%{V0EydTA!Nt+|!%ZuE)$J67Zk zOl!(IPB-#<0qtTVOQAqTz3To*05odqUay+!4E$H#33s;DOxJ!CY!nTFiCzfNm&idW z%R19hEOu8)BkY{wDzG+gGn#aZqdvc#PanaI;p0j*`|;&_8Oy%VZz7q(RZ?Bh{Gf;J zALMpwc}uN|qvj(pHfV~|D$V~y1N_c z?nW3Sr5QShv;CiS-nCvnz^u*Qzj)$)uG??&v}gL@lHo8~N19ra9RwH2jL67O^<}l5 z5bQP(b@1WobmsGtWkbbqEQ6vzkkmjD{DJP%E?fjLoxUTSq?``^<{h6;y!gN_Uv-21 z&d^7R@GS3L|5do*&HM52v(Bp)0%f7L&Vlhv#gBH}fnp|AJ8*4}ow>3=hyGIIsIH{s z<<=vh{UwEQY);8;s+9%rm*ffKv`02r;bEuIn(VjB@E6cp!^dh2F%}dq4MKQ&-aS4R z5RRuD452{lG5|?Y7Ci1_Hw&B2?h>GWFbqS7-zww6x5)f3b)j-?2Z-d2rDt3IMaJ;& z-}gR|O)R9mUi4D6fSth457A3@Iz7&QRXC_+aO5+R`5!ZU$th6?vF1R&gHCj0>bnm{ z229v^^uUesP?!sYl~HS$nSuv!k{`$wWxR88<@_Ln&*&9e*C&hIWQda650PQsb#UNN zoBA7^PssUNdu8i2q8<4Qkui!N4EZoXs!0lTb7OE`vOOY=*o+`VQh@H8l&ZvV$LgSj z3CN+Xy^^GxS=#TP3m7w7g#KJJ)(_DL4`Wv8XoX&&(@{zx#0Qon2M<6xCnzZo3o|df zVl#P~?AI?l8{$i+_i^KR9};nMA9hFz!mbf!TJGG{Ums}#HO81372!YEnvDMbc1H%M z!@9Te(A)3O`LaAr_GHotvmGeyxg90gT!p4twC&FE{`GKYPv2HPn(aqeSY=1&}45vp@^{%dD}l8_&P=b zZ@xht_yDW!SSga?%m&?;O}yZ)*J`2;H)|sz1nTO5%_0xwwsVLLtMJ37U~bo5oOF2X z-xml{F0-LV^7K)6mtbnK9BbQsvqapA&*Sy9#blb(V~9TJi&~YDFXU7MXK``WGB?}( zCHVl>3S9kwI^A`BSrKr&;qipQte+Eb8zNuR-u%^06Kv$yZPa`+N^2|xU4iVGZ??zY zB-Gt)+-=#LA@2+>(d01M&J?#b8xze%>lenbpv~HI>9Eb>!emS1W zI{1LjOuT9PN^lPoFnugEdnk6syII;x9rp`F;goAW7WF1o?716$Dv)vXZE3_#bKQ?IQwzPr#}o0@D-UV$@TNv z9+f`lX!S^%Y(AYcN&_6Qt8%&oo9tA9frfb)3GeCW>v7%O>6+>d*SXQ~6K?NX^GywP zVZWiiE@|}K$D@h|wt#&v+UBZK$ENv!mGAMQxi?c_5goSk%()nF$$>j}(}SX0+sAJ{ z)FiwFUw9YR&kXfMpRZkVc9aCpSN6^E2a>9$Sq*L%Q{@S!jawBM`Clif9#3Z$2`$XD z>{s|a9c$n{7e+ou1NP&su8^%Dxc=Vyx%c9d(LK800{L+Fs>~p3L$|8WmVbMVQg(c^ zcloa$I*V+UHP5+PF=MF6okGNHLkFmXa+^Eih`ZfihA>5;wrBa&03RsRx!8N-C}%@3 zfXnA|$8B)p zwn-%Iyb9c7OnE)cj^{8xj3mgJZMSZFv(@@_u{}efxY0Pb8d1h`v!W(IrK@?r&n13J zKTI>Hg4FN1?N|S!>-ii77x6eRo^gK&P?`OrToQcI`K=Qy8b<$pM|g z=X4iUjl@g91x5!E&!lqqk|$y2yKQuFq!|XkW?H(&W`sKq4rDg`% zs&44Xbqw-fNyn^kCc44j@ylil!eU4`;n5+Dlv(KF+CJ%*iSko|Q+n*!4GGb} zPlzD9zzD{bypa^(aE8){CyH=x0qFVEryw)H{_DVXW%Z4X4)dI;B3v5uf7~9_Jk$`jir+j8bk!WdoKmRhR3R9Mz zk`hMYLtgEY9Jy^?<2X}LqzlJa8-x_<999r~VbfdjFVq}PQC5VEfofw7u(0WX{joEb zgfmRX8g4I&4A$~oNIu?A;(#$*IOxx@qv@D00ZZf7+aqTT_jq z{D4*c)&@uEEN){)uL3j7sNbmNWLvJ2%<10HSc*lDptdBVrDKB=$2}m63~!DOCtkRN zE_diVK>7Yd&`;pN;oWf5ZJ<#MzR;IT{UCpOb@GE# zR@AiUrUkwOpWXsXrYuZBGt_s|s*;}mD;@umV<+T|$i)-Sv2xko>u>l}?lPgf z9LB1ZKvEFpw>uVNeC|DUz<*iq-O+hcUp-jfyv&?qeHVl6uLFzU4^zrpyF9;tks$$z zb*qnfxF<8uyVy~#VJ)s$sAM zivoK#DkPwCqH1xKSKzz;H!#m0Q=FVFw(|9vw%!gQ-x1$XkRW48NMrpH$1aQ@561f# zMJ|I~h%}({_viK3K$SuX@{ka`xhMOvC7<&Np=theG7nrFRd_=q?1Lw1k<|_t%l(ut zm$R#^gRB70FL=YG8l#@&u(e0-sUxS#C%H&yxhvb?)9(*0d5B`|Ma1FHKS%;@cl=Gq zdw4CbAVUEiH#|gG>>9|q0?kP>AE1mM76EE@PsP38ql@u+8TC_M>)Fn@{gY5EYr1KS zYL>~PT8;@o2RQ-YC;#v?fa?S!Fvk0jTO;FJC&KJdkd|gnxKJ;19#HhbQ2y~XWpsNR zwy%np2Aazr@Z7zVlDZ@6B?1te@Pm?Cd|g$?k+d!k67TbUeIuXIhywH)KL!d6)Lr>S zpt#z6TGcj?&&l{6(I8i+UaJn{=j>#>9bHnMPx?#ykIq)sQ|4ek0Fwb>4+Mc|w^b^g zkksht9=7CsDWb-Qe~KH~!aO#Le0pVDQ^BXiK>g!$K1t8ajF0aW_eyJF zg6cn1c;grcnqrHW;K2Xd4;yOUqXtGWMb_`bXA!X(vEcoC{NWl_8_S{bXeJK&j;dJ= z7aoKwtQT$f2ow)d7q7~i!Mz00M@P5W9gXpnnF?0aH~|uQ3LnZR@WPbD1W#si1GlvY zJ}k-js%pS^cDEE;NT^GYKq0X80csBYgsk|UIhI+CNuG2*?5;DLzw zx^g5>k{GO$lIE5vcNmm63h6kdSpy^%=)#;F-+05oKqDe(_h7NF(X>)Q<%NwCc}g!C zBBQApJ?SH<2h}TG*<($x@69M?SR0Lc}c7c?TG&M^)n-+!;t<8_-6nM4l*eB{~$?~AJ(k62Q@Ioq$D*pL#=G6oHaGEA3Wvc zlJE-ezdW5*iAFx7UTF`0+HYS>aj{BAU-$Nbd}%&)?mpGU!UuQ{uMph-*h?Y*erQOA zeF~u6a)fQK*tbnE{+uXWb3WAu6)I(kkJx%>(gsJA2e-BMPkY1aOTcTg6%bn5qU$yj zzXzpRA0rOxWe4I|%fIc2`a0f^?UdCi{oli$%T|A=`UKB>`UP1PPoJ^--0o0xv;Kpf zJcvRLM-a6@$;`?9>7}$>;2>%};1&jP(NwHpY0cE&*Ti4~+Cd>97v47t09;yipl+~N zN3Di^Fu<=(oV4l;{cr0%A46r`Y6dK|vvSzNqzrg=uvNQFV%g!5x$tW#LbPHiG!>D; zKI0(|maba}z>$AivqY>UZ@ygZN2jcx@(QW1%#DvKz(XNNUZIl2m{19dLLT9id7vS~ zzpJ4fm?+pq2v6)R0MgjT`6y7gZ35>mbZo^GUh&BcMduJMzulAXJ?f2zvmMUeDI^7<3=7$NR z1~un`wDt9`HnY5J)6ycoD?*AD-5NH10E4{*G}tvCk$TO<2UnvRD0ebVXbTzV;Fri`Y#C$CI}1gz>XZiy>c?Bud+Yz!D5UL!8Bx_Y5VriuA}`k~WD03W zF)L~83n=2p$l9!#bgtX&A%1dlc|H!A{|bzUK>%ctfFxjz+;4ijg=Kahle8w z;cq=lITXZrr>1H6Cb)?Q2aRy$wKF$+zRN@Om>9&U%5&lW^dy>`)J)Pk?-&YG)|7ZT z7yJ3oC1bVd_DGGf&mcliu750teY<)40m4M5|4SHSfSbI8*$)~gz>gPzto8icesQ)# z7x>yrL?X5`D;tQ5%gb;kG}AM!hVCbuO-xbm(Qy-QPiIG`*~oEh7%tXYDnNQPOh!JZ z*$yP_%I4NH3u#3467d`En-34^HGx~4Z&`J_O#TSK!tO|^PAF{SnQgKU6YI5@Ei=LPua6#Uv!E zB{Zo6P3MQ=4BK}zziwtWTs&r$G^9pS3PX1}@4yaY{_3>6`vtC8gnI_W$rkDklj*OI z>kY+V-@TZg?l**RY!57-V(2s={3Ppyy%{$|#jlX=aTWpf5&k!vhd|F3Hf>EYb6vZM zwwKDCA(>?D-oLi4`gZM@%&@DuEWh&HOSGrTtb^wu%gvWzFVbqR>chX?l?z-dvnU$e zKeoNDQa4?uslfb45pF~&QeNvTSc~@d*Frn*ED+1YVgz7?lxHg%PuY#ZPuJ=gFIKbL zfN3BmY<~{B7(?>p0TYN3RGas?AeF2)hqM`4;hxqG#ekh zlhOWIQQdV~>p*NU-|BSQj!1ySxKv3%d)SK=k^Y9>%omhu;C*}#F;lmjyV_?pFd$JyPJS1fXz+I`(eL}1|ia>Y8Sr@zj3>Twr7;T9SJql`~n4BOLY z61wqBeeCc3$KlM&)8e;*)4T%|c;6kt1I;H>E*1Z$1z>YM=#JKAO6T_Rvi5oxC{5~H zZDyW&6vfklP9|V6fH8S|OdCtgfu*{E}p*8&@d*4@7aw}OYKy2Dww(b>{y8IY4Js-aVkugiH(gp5xd==vq37qT8Ym=Xyep6hwb`Sldf6}_FE)Rye!}70%Xug!JvIBTpI6ktcgXqx z{8%xLc)CzwZ|3LHzn|E6SHUT=gSO&kP#zHUNciPlORD^E^1mDv5qKJwU?KHa_n==eW=c#w6-yG&U; z?=k}+F@P!UGjN@i%Dp^ZJhmxkVDy`|IXs8-u=^YNCJh$T9xvGeBPOO244}X2Kq9tC z`{U9V{GI*pVueqx(MF_V$&vjxq#Ih5awb75v6?y8X6f9Vy!rO_cK@!99QQd7L2Ydv zdAoHjOp>)8q0CK}__~~tuqGnRwDw_DX@$BvzHxE2jl6tyH$fX}lcXl=yNMV8mhfI} zwORq*ggr<8X~+y0-pEaJ@Mn-;o|>wWi0yrxf5wXjTWi2;6c2T664293#!{$hs{sE3a6`Ly1dQr|RNm0M!Jj&0VX+^D)PtQGBVJ!1)8)$yA)ZKjW zpot`a_ta((ew)n98?db|@L;<3b;0Q*M0i(1fml>a^NQzWx#cOayNmLGL2h1}glBNb zlze}5%*1m9Vkca210|q*l+j`Ah&g`?$Q-`gO(tfB z05*sm{wmkI@4p)uOc}|e7hB(3`VEWfoM|18bC|(&^lFfP&nz_bwM7EINY5|JmVA^s_g?uRPsx4<`wii$SN)dJA8Z^F}|bsP=^LuMAZf;JJc>?c`- z#a=E4iWzKQm;VUvqfQRV+o%Qqmz=#S;Mg_3r$iKE!}7fN{BsPx7D-i0N=$|POKrV3 zvl(oTcrtNs4iY3{3x*u=Co|m7!M;C%L9k2K&7IFD>dLiBE^jB`1DmIyfnD2K1QIan zzFvcH{mb#|8*o@~Ch}Lh7TUgybSA#GvZQat23XHf$S)N{`uv}iK8yciXbqA2!T%q` z^jRHntVCG5mFv8D4e)W>gdW)0SiWo=^I`KN*&vWhT&FLEG-`?c1bl5YH6vSB)&PHi zf7^~h7v>2p?Is`H_&U%U%m8A@`IuM*I920BPE)>H2jYE}O1&(16%bok^C$QyQ)O?> zz=$;2miV_CnnmVg!7auI5MKSaH4w={l!R>=I6Zg$&Syr+CO-TtUinYW{3y`kcwY!z zUk6ZW+yit@$Hp%H4 z$rMAD@p_4DmkE!El%OBt8UuI2@yLO6eIwXEaOfj62n)qcki}5)Qx@AMl5RyYtR%5@ z@ioop>>@r6>i(1oQ76O<;{fg&53{om2xNE^ttFmnQ#`jJ5q%yl+rilTbwfj>y8Nl8&nLymTa^Ncm!O|}p9?x*Xg zPffyW$=a>KY*=-L>YK%iH<+UA1=Zc3=L#VmXlJRIRk-G+aLz~YUm~Q$3fDhb|9727 z$%<_2M{^WGum4V9zODQqO2iN?a5)fvPE3Y-O*Lw5h_0o^f55wa+i}9)X``84>!bq z9-`b?iOxpYdVr4Y*{}+|E(dsTK}vEn{;+3>B`N&0S>}drh2&1BcYPpgd^s%YX+Kt; zPAcX&x!ld7rh7xKGX4xPh$;`fhgd=%&pN4-=;^VB-!hmWayI<2DcN`!m`I(sTkm;Z z`b`Giy&M|)?ia^BRydK^MAYMRH0VN5qusN85?#}AJU#tIEhh?uCmyMj4U6UWnwQG- z-{MtHtczVz?G({2VWc@1bdP5jj6`N9Foh`-Cv3G}+mHyy?AW^A0V%Bc^#YSlO-}<( zhHEX%A$cE<_N_gXHUi>t2-1 zW+^VLZb=CAKW`Oh`g4BX{qCY9_`Wv@A~7v=9ut9Mnp4Uq{-PmEf;3rpOmE$6!``M!BxbALZC z+Ks>UZ~UNEUFBe;O|)b?!M*Q%B-W=-kd0%KU2QkQtfTp~%xgKB-7#avBWbHLJH*P& z{vb{m`q@dH#~>AxfJN827y2Wpw64xt^3@2=`zBr3#~-V370tM{sHwg*RpPA&b zR8mG8=@}{VM1`*hW&w+M7ZLx9Up-mAm&#vxY-Nf@%G5P2oP!e+6Il#9HvR749J+-M z4zyqYq=1DJE*0=r*`i=d`yA;(I-kQ0sy7KIlZr|B#84dV)*Gpc35@*q^oO54PapTS zjRRfnk zjpyAt{SWH(%Vz}{1<1R@pN)R`)1Xq^s)OXl7f3&dp6Sgo)To3YgapO)W0l*@ByG3S&>yj=%Dl%gq5fpG!Q%jJ5rF zY1BvIw@;tr4m(_!ZZg`Bre;IyqsQm~Lj3m))OK%KbUl{5Qcrr$|5lSQpngURjBSbl zr6t{WYiTr6ec@SNN;e{rh=U23d|WJ;7gQt^cKwUdVdS)72TYm>UCzLfGXy%sM289^ z*14S(Qelje@eN|aPG5Dq?Q<&&b6!PAlte`cj6M2`5aitckatdax@k&{2$9^yWf*Jt zUi^seR?1Kpx*}mAahlO=Cms8a$N9Q7Qncgp7Fz<5*uB@Nk|NNR!I6jlZOXqzq&vFu z$wr0nlZ3?C%POi`S<+{9SF!jr;f+hf>h+0)=z(9(t)9~PjRGO zu9N#k6})a%+M5*~%ZDBt=YdJa&<>=WCGz@(%nW}bl`D#C+ntDZ9hKqd`om^JQ zZcL)#!(RRS**PFuEtFpaSy|b?B`TWxRqobgv$PDtLhwN|*%&IuOs%4abSCtNgGFAZ zClkKNt6>U1U1qGg0TUq;SZ-f4mC|eNmMWO!Q)_)*CYKHW6|aL-FcAhiegQVQ@k%6s0Xb4`y>79si}Uizfsd&*J77HO+xl> zVnOz=lYR{%X?H7r%Ooxn3+AaT{I{*SuGRKEo_mQ6)6bvX*6R&K$ULE#aiRdg&BJdll(XOc}E3dp3 zt}&k-eEmdGoPuEqFScB@u48C87}i+yVIS;;7$JjDmXuzitQAc-DMeTJCN)&RE~?@qVSutiyhzd|3H+ReL>7$f!^3;cSbgTlg3m z>D>m*O9yXg9)we=(NI^G=f~t;U!ua;xCV>9x}ewdl#=Pe%9UsCs2S4rspe|2>)7Ux zIN@zj|3Z=cveV8d?c^elzw0h@e+|pW> zj5Sc^Ffl>_$Nq&pP@KtYZ_NEvps^;#^iB5n1jF##g1nbXa&1T3=Wf6DZ*(zLeS{J_ z!)QoY`siltClyo{C_Bhet~8#9H~bErx4(2PiO=yS5JP-F*sUd>^1Bm&%HM}6tpJ0D zaAGVAIUDUxn7ak7+VRx`G%*xowe{=Yg9tfh-drYJDUR`TOMYew{L)Yc+|}uj-F|73 z7ZQ*hOc0?Y8x&J5_pY;hLT!}{ma-f9K(7|D;0m)+XgMr_~a!wy)^5EI9#oAQT(MLdZn+Xw~>*b#%kC=pN%G$iZ zWltv}pB1b=%9j2YL8t-|L`FnZzqJ0R?|71A%H3Fi`69EZ{T;wXwwI2G%xBxQ8z5(F zE;A9{@ydbuiLyDzWnNJ=Io*8buwD=t)$nosMv2jAPm?~bDWE6ELafI3uNpm=-`w7d zPye-Hat9W4w_rgz7DVCSfT}m&=Cxgx~N(IOP;&? zfG^N=NUPWE(Dp7QCG2{z`QkCMaGlwMi6?<|le~OFQZ6W!=0@Y!#QJ{S+m@#Vn;Y7x zGEY)6GK?Wx65TvzlGF5e`UH_PDK4Adsmvt$Drk7k*V)Ta5G8+~C~O3TIi?zD4^z4b??T^8kYg=;0!8BpI!RuvvKskFEwGi9T76k*jrhYT zW*P}X?Ek)KN{Jk4#g2uoYQeEfo+k%5R5BB)#7Af(M@WXk;8X-+J%tToBlm3&6c5s^ zBnYVSkXnyle1c?YMz*bBkmi%C1=l8`yrBmnr|BY?;xUBjWO-LkMZGuW!BEk08oNMa zr;AAz_RO(DTSEO`NtEg)?#oYbFCCt2L$4u4O@|iku2li9c%Y5 zxYhXMG`evodi%)eQeQ+Yt&#GFbDED`UyY`=tT*%FsFJ|QyQ#XG-B8VW3#vYZaSS$a z9Kynmd6Uo9Y4?~5&TT0*ENLG02WnM@a0C{v)m*mwhrVU5`Y)0-3T;4F}BaFT5U>a_d7*D=V##4)Dv+ilMZm z7g1qn270DLC!{$`^PuR+W|_1REE0awVW|@#m4uFaMRw-ByXaw=s;%Msbo_)#vLMK^ zn+=0)K40cbM@p+X4ivSvE0`XXR`nK;HoeUJQ{xQpz#e0TvSu`j?}^~)HO(mxuDkfJ z#sJ~}#do-M&E}rJ+ZFp$#u|w{Q)MpYlA;2~sbs!vcYzC0Q2{ zy?WQC@~F}u+j^J?8u0L)uh1vcN$8W}s#!e5II~mQT#87)(zghU7I-g3yx^A&Vaysm z?PFZA!b-W6K$igT#kHdG?x#ry!nFAS-_eW=L@=#QQC^+b!(~%gUj9$Jde#VJoi^{& zp~s;vTIGz+r`DI-)eg%Ndq?u%VJoY#NyA3h?T|Wk+8AMzu_S+CAHh&MY_2_@<>$v{ z+T2X9`(J?IxCCr1+V)(v8Vz8{K3=MJIzrxu4t#wrs4@KSG}Zy4*$RrETsw-JW+V0; z7`WJ`7!uNAA1-v2MWM*1RFpn(?;CetS}b}*9fpHmDx2_&%4l-}y4X?9bKKhm-nASD z8ko5r7{=$iJhounH-P=0Fg-SW))ln{Y3oXH@CjOR=t0v5hM#WNT_)nD_{|h-sT;T7 z)z>jjrU6$CbiQ9X%YDe&q3iaOJd#%lb=g*4Pbcx}ea84SP6DI=@p(7D;_PLXLQFm z9>kX*PWL)Wc~bWBGcDDU)f_{CTU#?#z{(uY;80U_p*3)KKv_kh{1Er~$0cV>`hHnw)H|WFi!FI%$~h`jh2z{>>{owc0}u zvMqStRAa?iYZ*`1%)+L^4GY@-9hE$8?0MM5?{aX$Wm*CV^XMf>kfOv5bb74&U8bk? z+MH#dsuz9Exq0@yoHi+XJ6tS0$Yy%l?X2@CuE)Pcc3=dYwyi3*?VB@dG3$2!QhU6) zd+T0V{&%^hB*M%BI~W>{v=N1BmsXbcy#mE7%8OG^A?Lq5^B@tp4sb%@XcXVI)H%7R zQyA#02kbvA*BJE77Jf!WnAY{|tgeRsp|uo(E;RT(-JJd|Go-M`LWhx|P{4*kmI2+& zfAH_D%YzK*L+?*e8z|}9Ap0FTnUD-5iM)s>zB1Fk);e9xOdfmJoYx)sYOkFxYV+=( z5bNUO;#aTdzu9*ycCEWROvr)MMEpo%wkPVq64e2{1z1`0kuT zAGh^S5;WygB6K2%*=)nRzqM;t>vWeFHf}U6D+HX(9&iScCAz)MZg+bpVEVT{nQ@$9 zP2_pYg?H1lXPDR;CQt|7h#Zs|fz{7>wEo@kNf`6x&-Aoa^G2f}Y5U!5i7%M1Nr}V@ z#eVPjfmZJ4%hhRm8DEfQrCBp|AGw%l7uQHL(%R!|fGceKpy=b`0pH<2A1xgDAs)Rq zxVj#Hjc_qGZ1N+_ZjxcmKa}@;5_VqRA*ue zJTnyRy16v~(Swn!eg!9+Q2DvPDkVph(mNLb zp2(cOj!y3p$~klVzfRPWC7H{CpSSvv$o!u(!F<ffhY%sAA~=u|%GO+TsPR{lqMSTU*{fc(psGo% zx$P(*?q`9{r^41=X-PjYUrG7c#48<|N~nt|8r(`dP*Lm0nO)kje_($@|F1M+{9k8y zk+XDT!E^d$dP2XpnLbK1t;ch;Z?LPwqa47d9n2CC*+I)vjf`t;{agy8Qp@=Iq5F0A z-S&sUi}ZziWuezGPSzg%<=;B%grdS%*(@6ZJdzKGcOnU>FUuCwJ{M&Nybdh3EFtmG zy&|4u^W@~Bc%i30Mu({lmp&FJVk3|B7YcI`gF47#=2=?%T@DOrpu4@AWNf}t#DIlh z<8_A94ISO2pla5`NGdN;DdGG_RFrR6bi2QSu%Tvp??n0g`z*yw=2E4oTy4)|MkFvd7X^wkCFRM2`if`rWLy6vz<5o}qL0E}N;wDk1!D0;b@8O{#~ z(*W+sh5T0{?WfJ_;b^DAwlc5A2A;QWyov#CL%8S(FHrXIcp_mw;}IgIQ!cBKi(i6m zY?qwBvM_-~_Oj_jv`noNN<;bLZQxEsGY>^X^BVukP4S zMN(ef&^z|ZK_`pui&YhJ`(Z)26t%hw)DtrbUk% zsiO&gJ06n_oe8}6--m|h`d=obD=olS=J*FA{SG+r`{qF`;=T~4ZQ#4KsJ;38f~y># zy?SorL+12%Q&mI_Tv2}Jy2={BGNsGiCjRG<$Uz-|p>Va0>RP-SdsA#l3Q>ll!p28_ zJw_c$8&flu?3WQMPBYOrpso!3sZ)-h4@*NU`2k*s60uCqx;I|rW|<8IQ_yi*9MGro zG5so}G#vrp;Q1&jBF=RZQW;E*A_wHAnk#ALb6gUr3F`a4A7v6I(^gg!8+)qV8zAaM zd%E?kM-`+0rv;Fcgw2#qXX`tPy|EkPC@TAjC0)rhn)?+v8XZ!6Lz-Y=H4@kXj*8NX z#`4U{ii(<=-fFd?I^j9D`R@VYPYC`;&+2jIHhiVs-7J~R=PHXljcYXyHPU3cMv2VU zEF;x|H!uCMqQ*@YcINBN_jdUQk?o`HBiQ*GzQ)I`Y?TVF9 zjmz+@lC?_DM^3UF(!%){bxo@34%hzT*m6Kr6HbmS9u7pyLsxtR?KvcZ3LR(p$u>(V zU*yZznntDKUO*sRnO`STb*?q`9`~Qa>)+CBtCqZ*VS9zA@7wSI;c{* z7|qhmov;%MH6b0>&J}7+r_Zzmr+>hW^2km_b-UXiBvi&VjX|c>7=DN#z&GNEc+&!Y zvW$NyH0vStgyK#M1q>Tv8n{0c?b+3vCa)CD?H4VByLaNkS5PmV{Ew1^F*h9Q^_KO{ z7ysRX@qojvR)O3k0y86{!+NohvlWX@zirHcx%yPQ0iF3CKJZsQ5~`L}!^+I;p%jzn zTL`*4nH6qcBNk9U;ll()RB;-a6x@%E*AVl#9>i(dWl9`-A@0VQr4GPzB%ZsZ7I6s5MohSVoN zEPFW$EH1t{OmD!CCXOc#cZ3 z6qej6rb2m6CmMgem@5=AuTs*5rb~}*U$$eL`2PMZ6K;2NR+9ROWtKKlYW1tx_4Adl zvSyZMev0>z>Ibp$HPyg;ov5JD^SY))%qj-_3N5_xiWcH{EYvXcclCE?xE$%^D9o7w zka{^3Ei6Z%r3(~4&ya>m&LolVS9L}2H+8i|FISA?9`>OgqR$F7MqL(N(7CkPoiI$2 z`|FsNT)#g>hM&-nX1XQ(PTRlT<(9{^958uqv$7IgD*m`jWAmDb=&Wtm2~ywz!imEl z%F|YrHfwIn34n-*O!t_nzwtxxW6pus;Af)#lP2r+>T*A8Yo=jhXp>@W=K0GNRlkQ& z?5GX6?sAf!%)sa6ykz4(I>=98?`q;<7}o)fAtZ)A~0K| z>(uC9tz(oLoT3+79winM^Eohvo!JPN&D4 zB(OO-Sy}Y;sB!(gZKp*W?PR`;oWBmqHeiyNVVxv^#ExlCDJdaJ`5j$3}%MRX!0R~na1jF<{CD9P* z;Z-P17gPS`c|zXKiWh2B%2$^&PabUS7tlc5G6XtSz6>cI#)*%N;Qv{KOBL+ziJ+On^3?_`ZFF-QC4Yc~a z2x@d1y7dnj%w+N=K81uhD?Tg?WfYgoG4GX1bhx{rx2>%`#+@?QLPGy5iz;mGnRNQ*w;BfXvvaq}Q8OHn zLb>2+-6$J_s(e4yIM* zbHQ0oSuTW$ zzb&uyXD~z|Pga6Sd)U_B=(vGZ0Wa`bEYt#d!{Ie2OEzS?QejM8?O;n%u5*r-Ea0r4 zKic03`tIqp=c%oPOkFLp{ZF&tDr20?f2EI#f29xjLLsFmjl|pfcRv)de*y(E5IL4A zZGMq;ZgWktHOQIAWDL=N%V&wc;q8H-$OEihdQDL2W0<^94cDHfy8l*#10ki{SD`|+ zER5C<$aCG6gi#}OYLX(>TbZt7W)e%0xPdXaYwcIcDYY6+IUi|Gi(r+C_|0O5nN-By zU>*1t+m0m_!eZ_Y;JfhQu`!%5RTR$WkP!x^#YW%|jNAM9CY>HRKz(XpCB)yvi#*Oy zN2g>3Kw{6Q457C^70LoPa|&f1y)ZtoR$r^f@iSmF3OV~fUB50W@=od2pM+{#h+bb@ zT~LC|hT`uBljm~+JT^P7L^C?Js6eY|ezh03fh`!jUggeDbd}=7BH2FAivbj?=zUp`wXe6>2V%t!GND39*fEd z%l7u@`IC`r?7Uh-=6!@9ip*qNhicT*Exc5t|N2+GhFPz9e|32?z-Gzko5%aWY2E*H zFWt5iQUr$A^gTvh-Nohgb9bF7ADUic<2$ztn3Rw!^;_!N+oRCSe%@<7pM#}git#I! znGJv;)r_^|isc%8V|C5N>a?!UXh{RL1YtlfzOUg{dOb1hqO-K700hBfT{oLTme03# z@&z;A-SjjPc+r*)K6GHqgAW&qil;+usM?hPP*vg<%2Bv;>KM)^4Qrhh?be&^8mw7k2CmXTp&;Zr=si*QttquDO?+?)**)z2l_hyd&RC@-9Jys%#Iywi-Pcd8%pyjH?NbVTHKBu3lF zyQ^HWttr)9YS|cwynIWNol_kIgjDAaironhUy{@^L9q z%-k#kWEa`K8pR(R$Hr4?(r%_sJivxrHcK5J16`*0yOmqM(&%;iYG&3?T>OG-cdsTE zavc_hLaRxTPIWfAncwvBoy}I6l}wT3cptTC8)tI9_9GyjwG2}ronWv2{U4srGA^p` z3-@Qpp@)zZ=@O6>q`Rf1Te?A{85$hv?vhlxyQG!wZt3oZJHP+^-1}-j#bIz{of6yl7&R#Q`UyHmfQXQS!Q%f!O5xBXxsg(;c&pGy<=5wo7db5GINxCVHC z;5|FH{rxgrrgAu6;tqwHx~5Ov?PO*Bx&Mex={8Wfn_J>wV^!K>@ef?({}z`oHZJ03 z$c0Tg-B;^jWLdLxv2yh|Pl@jurcXZR(;5$3n_>`&uxt4{aWNvy^M#``fJ2okv;fwHuYCWmM@p3d)-OHEch%UM zm_QZM`D+-hb$0-f0qXLCMlIg=k7l+|@ihJ5T_Q107{f8Y-9|YLHLeAxzoh48QJTcO z?LNv*7SLc$^R0;S8U{pem9e4Xb*BJ3W zoVQU@Z1+Wz@%wg-cv^CW>M+`cJ$~YUZjgcgSK$z0gpcRSRdv`zP-HnB!p#a;wGTEJ z@$)e>Q}`n6q-N6Z&KDJuE1F&I-@k$MI@?9WSg5z!X*|7}eK`(vX&13>7$2OS%J{n9 z^yG!PWI1Z`mj5O%#IaTALGPR2@`s|&DLSxHdpR6df-k5iB6s}^&~EudmQH#ibg~Sm zM_%O*&*_l#^Hz$N!)9EX`v*YqBuPa0*6%RW-Jd{e;U#r|)|ud|SE>X^1g}(RcPd*d508V7%ZqnzWJalrR@!#R z@6YekM~!NPgrVf)&TB2X(eQK`gqUuGPHoa>%F5d=eULmh{%D=F zzT7dqX^jOiTcXI*+-@+&LvKxQR!OVM9ws&EB0VQGFr(p5GauoMFo9u*K7kT&^V{jHU$~&vvENH zgv1`GZICAkr-@w<6e7JRsd)92=KG0^Hb5Y{&Nvf)!02RXv1J)6E46J49p z6lZXZJwS=4;TYY{`w$*ONrePfF~$sn{8`c(bqQewDBoP<*J2{Z8Kdw>+iuC;ZEb9o zXqNMDj0Irk_}u=h39-!fv~iPe=c6W0Zqw)=`c|&}b z8EG(Yg$_NYG6>Kv;Js2}%|52)6((|u*u1QHLxkN5Pv<%Z5 z)+XOGH^5D8H!r!OjlHSbN~C^8SV8|CdwSqn~O>+l>1fSz+wXH7(6Me6?Ah~xDCcd4P9uu2?0Vsv?A zI@(66F!tE1(0+G(z@w>+zyt!H9xh9V8lHu{=fh5BSqxU&ET?sLGCJX|bbmj@ zS2Q~CREb_^@) zJ?t>N4;g)&EL4NL4Q#w1y`;}bQ<~gmD{^=z9j)++VmY1N<;|4M>+7Z^T5)R`x%d0R zp>bbD6A{QGo3hzb+>e68Tk3xy?dqpwU;PVr#1gD5q9Fk$YQ8Layau?LfkEZl9%`Z2 zd^wg4ugFR|4C)IVPaIxJ&F3Vt%G%OPignF8bq#DTxbLbYq{sVC#Lj+fI*8=8fKM;{ zqy}=hWmxn&toPiRD;jU@fJkut5!`}}E=4g$i3I+&=83Ofy`C%TZ$%dQw^gW7S26HW znF~-;`SMPhJ7Sm;EO~2+4S1J99-b+@|8J7R6pfG5sC-^);<}P%<;Vgkd zY6^%!R(u{J8Z3ub=TmMMOPfwwZ{VYe(dUA~d;gr`t~y$6#YDQ*AS!mYaO|>D7&0!rsliE+}qnU(L#+Jx-W+=6=XeI zB{R=kRa$S;UuAyq*{zGGxL?Z~#SyyoKd zE!=-04upnaZzgIS)Y${GYy1Pu+e=e|r4ieyl$i%}7=l28o@bqs#*)U}=&Hm?oh(cr z7kF9dLQ0J{MB^Zc%AB&1#wK&r3b}OSNigujp`kVcnd$tYY#d(Q`A14ZD`HIWWAp(< z{%zvpB1xrp|AH}!o|>!c(GBx#>9YQR$H;>vHa(rB>Re=XWa;0DeCc*J8rBgx}t4Md>ZT%%FM z&X~Y`yM<@~_@f;y88uS3KT?uZy%c;@kv4EwEPm>2DSZZoniO$w&#mTsds?sFUb}^g zjluD8j!OZf+U>BoCirlnU>fwGwMFy~+T^5K`(wSeM)_p1&DNBgFmlHIWQB>9<|*eH zO0EZ|imIB|gu(Zy2!lZPtlgZMxmmsa@{l^(VD&&)>%&SBoEiG(&xi`CEG&tY`QTum zr&Ld|^xX%?PYu`)Ql@A3_n~k{Ci|7z_q=T018eOFl%&zN!Q~od3SsA7H+;rd3mWi< zz;E&|mL{4k&MA?O^(g%>;nv-qXL*GkQ-sqB^rf2yn`~Eh-IG7#m>@aXZn55TvJWdY zHCCZ7Q%^Nv5faHXdNSW4(Sg_;GD*Ga^I$(5m3F+$pZ$Jca**(SoohjX=g~sL+qZvD zprSVgt5B^r=)*4t3i!;)b9n_Wa;4RBwWphO;RHXkQ0v#;g@yh7XK3@Cu0m{r$a0N) zL1`pB!DD^KZ^M!RN3qU2uAX)8U!4WN8~S4+jUtU%&q?gBLP>&zjK@UsS&{fBh$Noi z5cDaS+jXDj)hj8wkfyAPU@7?)T1v>i6p}c%e_$k}(bwBvkZ|;me00l7SRL7{ec60t znJ(Q|FE>J_7=(tSV!bAdi=_RuBY}e%yCs&8p^wpwi62uMXpgL5?{w-5-LxbO4eRaE zlu4Mr1M}=EHVL-|x0zQw5#w<^0*<464~GhzZ_})K1I`S(pSf>S8BR(nDqg;hSTel1 zVF0w7&9>kf94h%zwhq@=VI)~e!!!uUxfX<&p^5QpFRQ7rB-CNc%T`ukat0wO+oF~Z zr~gNc>jSbXLMX-ZYb_&i)$qiYE@=4!{{>1ZxE~i&e3ix741~Piwda+yJ<))4{yff1 zb3ge+@>->Ds-LXIeQ&HrA+e+_xCjMj7dqFu0(1hAS$f(ruG0lOUb>#;ma*?2fBx={ zCdCBG9R+)bBK#LbgVHNmKKn=7&NlqA(~QZkAfO36N#7opA0>nOIPqD)JRMX`W`YMt zuOqc$^yW(Rc2d-Uu_|cEh=#q;mJGgwj`cMiQ3jz;{&+b4{7{5ik3k3w_K(c4!J-$m z%x@NKKYR5juDr<0&1SJheQ`}aYh9XmrQTJlXmAAPiDr~)ibLjfXo47LPmfn#r1aXE z5wX7wDbQ}d)TgWQ0ubfs7gF{|#*}>Rj#XV%pwU*d;-1&`K%X6<_Ay32Nj`St#y=Go z3;5Xd^n)$gM@v6}ti)k}^<4(HwVeg+&|g!NAQJ#lRKA5!OeOVuz&sc){}m00%$R$q z4|nALN-s|p2Z$NCF|ekpIfJfNv)I>C5(JkfIAuIg_!LW7AJ1LL*e_HcRoglYvAx4u z%=L9~y>QDcZ#lO!8NXm_znWRZXs&fEUz)qlyxPfhk)QY1Pu8)GC&a7ixVAFcU z*Xsx|QfB(xt(z|TEqr`V^TRqFmt@SJt9Z3_M$ugJi0|}1)Nx&$p_}E{=#I$ed19Z? zxhT=8OMbk&KhiSFbnWA)m#S)v4$P-5n7{C`h)LpJh^f^d^~iys0YaPcl)c6f1LYqO z+A&vr;dwApjy*0X&__&5DK1&dQsun4Jxn&6>AS$RfGTbRmaW;@6XhTW`NKrLgqaKE z<`5{;RA92f?M3aqW=s6S)r;1wtuAqozC2+*)g9 zdsGjaWr4{4zgd89uba(!?>pKreqS{#?F_~}o*%n^^y?)2SvStuXUJbC72ZDkv7IK? zX;NZ_+vk zr|pap!w?0)G2%I5pe{VvM@CqHihM$xm_JnjttgC#i+@OR|lKN($aGGkkX-tBXRO4vHHX0 z;$mncsi{9xipx>vS9U_U@JQ_ikqE>a%l&#xz8QX<*+Vm;p~U4hEe3Spc`xFSoldR2 z))PG3mN%VmOtfMqT7ASAl+!Y-H0j zn~o<1-&hJTfw*-uI@y2;_mjc?rV%yhJ^B7QK3I+Py+Oid48V&$Qxox{(Uil^dY)PE)g9ztU{$&N7R4 zGwY$*)yDl6mqwrUxb-E;m24)W<@C{s{&{bAeY9P$<=qVX`XieCg2o*H%h6GY+vfeQ zL(i_5C<2hUc`G2RL6qubUg05yF8^3$1VaLd13;jrKg;NhW1=~z1%lXLbK`Jzy{%Fi z5bI-t+;!<@^qp3Fks9gop0$>o(iRnB`NsVR}nj`DQ`L1Mdwxo%v z7&)%`Q}Z73<84_0f=rnx7J%^Ec#WFlqa-dib$^TxR=FcBO0u%>0NhaLafZD{O1sTk zp=X52PV>zsqgYz{smr7|t3sOnQgxYKM_AK^CfXX8l8~G%hv(nSO#b?o(ABum<31yOQ8NMRtSL2SX}tMiSz>D%??Bw(qIDGfy&)+n;pT9L zogv!;B}x3a;$Y|q~J4Ojc~eiz%3v{Mm_^vx*w#>O=MYPLzx$hJK>)wi*!){0FI zKF%f<218^n>svQVFLML9GDSrNKfYXCRELsJAHXrUE!SZ#pgFC+XwRZd?tj~Vh!8~$ zhNH9$q23cc;p74W%mUFN;xQ!aP8JriC2Oe+mWJL>iR$I#MW3oa6_Wqez1`EI`IhPX zKt4Gt&u2**QSOe=|k<|RVSZk`UY?G-iMUv?UzVZX_# zpS#GP-3}9}ncx8QTMf!wP$gHjY5NKN61PI-d2QzD?_Z0F128jUqat%yys}_nb*tU_ ztcdomKL56v*ivCHE(Rg%g}kOQb zO7W-~E&9;xQ>Y{ z+ADfl5Cbd(dN##EG~|JG%(K*Brr&Pj@Fo)opc=a|01@K-+acU0;>mtGlOZy4@^V&H z{Xm--7D?{cywjv!7=aNB_-jj)T?+wYkO4Kl$Mh{JWV)F^7AF)@fXbKKCN2r6Hn9l0 z#1TQZFcvko=q8PYbH^if)9IN(fC_jibBPQ|2SOL#Vrvfz>sWovTse{iM^0)JKt;a)^Vw5NE!@JlySwT zsovk5c?Qb8Gt6t~!B0yEG`{ZG8I8sgxi;oWlNDDl+aq|u_MVK#i*8z+bre}2`m>kn zwpm|RvziU>f<0iRhxRr9Bt!KtZ}U=axkxN7mMCxCSelg1T-y)r=ny%8nX<`p({KBn zkEnA|fc&W>P(Q-$&wQVxHF=m*U*Jd*C)5d+@eK`Fv8UMn*EZ-|=_Ul9E|V zi{31+^B>noE#zLeu$vX=U10b~`&E6*jNQtoPx`IS)5RAfd_OjJsh&`;J=U9&y$?m~ zx~@#6UkfyHtfNxtR;*Ok+4k3`^G>zi{O;FM{=kJ7yJ)+7ZxCtB0$8oq z(^fDZRNEHfkdB#l7akon9GQ(W56Yj+=RNc$FMrsW%X5FJI8M z9TmE&4QHsg89(%YT5Q6?avWMP{#M%8tlf2Se|Et`iAf3tuD0hGe2k-ql+6}202h0lWJ=Clghfnr2E|CXI5-_t~sOc5*g;BAj} zdlBvI)Y{Az7b_&Qrq8&YH2G;fXr?zzM>bh~bXM&xWKDNS_gx+^Me#;!&^RE}SoW$g zXnAfFA?J9!-TYEh-EvjBztGejLnYyUSQ_4kAB3|vYx)AO!3eU6z(?C3u!PPBJTHj0 zx3;5%p=QZX-sO62_WjpZ<~5o!*hlHf@#@nB5`&s$B@Hv=Uu91ShvgGdn8tT0nBAYw zlkXC}$lw=1Jm>X|S2f!#y64M(LsrZ6o4(kaU!V^XN59UAZ5w+Zqm| zi8`%Aku)~PP^EyA@?Hi*jGkhWwh4AD-`bmThR++TY%qfdW#yj(C^ge8M-2qsS7ujP z4BB=F3*HMHq}MTW4X7C#Kz)vhRvlK_+jQhOY&U~@7FY#Vd~f1Uv>X}V4vi|g`>aYa z$&t|3+oj!Xo$I&|emaS$FJ-I+2lkLii`wBCbmwPp841>|MkTCB!+Q|#I@BByaTBu{ znT9C1PdoP)?yqcl&7?U;L{1VAn_ZpSKExq~Mjb6`CrRYrU+&eEHG2&gYoJp2$UeYp zRv4TZ7+<_yPm;1?Yrg&oljN@Qn{}Jl*&{FJ_jwtvj*Dvzx_4uH`_Axu7%rf&!we~f z|EXY!sEUZ%o`zN54*QFwni1hTztOiQD$EJgQ@_-`xpRL~GK+K=PZqKolq|$J+2lQs zG%tjP_7vK`fAy+>l{pNG1C>>-=EDuuKo-c zT0}|wg-Z6n5g&?QV0rhbj^qOQ4F@h=@7uiVk0uX_*K$g3FXKZox*Ba4>K(4nFK}AI zHnW6nWINzke~ghctbRdLIl+tkyb-}Y#saEiP%L+c;+X@F9pCNHV1+|z`H8{w7t5*P zDDC!reDQDyxx&iR95X!9asBjrX~Jmtx*B$W_8CONt&SL{8npXWP9|U??`-G{r!Nfc z7`5)7*T4<8*ZTwsl1d_j{3S#APN!rg(Sq}B$?)LW#;3*lEl)n=_tSbu;CO&tTU}jX zt5878q11M<-A6R~9c6ESc=FPRtLK#m_wV!@$|4V45sM5Ongs7Xd{Gc}W-h;Fr(gVj zG=zG!Ui@Y_X@5Cpjb}?9XdkzdGmaU0yB8qV(@7)oQoN@9U$0R4H}xk9jgY2Pq71jM zPCe{B`t+EV7G0@DZ;tLuxgY+@yWi%H(@^d)t&FOV5zi*|m|`D5hfLZ)q9j(ZgP8(8 z^>VTUrl_Xv9N}e@t0O}01KU$>S*FN9b(z;7CnT$fCR-i@I?> zp$K9j-n+vqj0eYh)9|+lrkVo~`RYlaU2Fduz&!3vOxuU6m(oSISqwBMU=%*|t%22z( zG&x?zqF-}*@?jm20Nob-(_KktYhuBngN59=4-j0wVf}{%~Ht(A@o#+=& zFHdJB@x95Brpp3e%gpnlZsg8y*-);XO}<$pXza|wjf(v5hyWIuVsx=E0>9TOtl>Ub zSrdvJ+q4M%wfT z2*RLd3bEHoGCz8!p2=q+(lz7yh^wfB9 zbRm#nm^hePO@6Unk^uM^EFMD;C_7hAAZ}$38>?rPJbN$`^59T4Dw?fWuKt()O8)G4 zDn4!hh_A`BOfRXKKMXJsaGkHLBL(bCj=~-mZFn-jF8v0^v?<7@DqNHt7Lr#>W6bD) z8M`?{b)s1SGrtZOEGY^eDvh+ZgH0bsuBd4XmC3U!xQK+UY)M!-KjDBc<6($!V0y#&Fv@`w0Brs|H(Tn` zyW||kB-EK%*uA~C!9?_jng|3juSw>hZA#R(dc5f;|=8LW$}si*!XKz*UvE<0mFChR!AGVDYBsD$P|-S?FP( z$OzhPDQG{H7%hCAkr1qC?(KKLa3`~oZ9(=jD59Q!3;mrlVpI8O`#1O-{d6{^HY+0< zSqhQZ8ERKyY{MQhs;PIp#&5Ma$YuC%e6b@94o_)TB94QpQuJ zLJwX**J%uNV}2h)InIw$g{>j%Co`WqmzS%4ouHtAj$_e5xpLdS?)}R&K|zsn`!a`w zc^nV!dy6n@v!szDDP?bzSM8d<_PERXfrb7w1W3hJN$Y>JM1^9Y)TYLkfWZH4upm zn1_Un9|;JR#YXhjFKSmP3Ucx4$pZe5mFhLtGyw4yO|Xq^L#%0<7J+i=2e;!5$8BH! zmxVJTNjqc239160iG{8IZ4ie^|M4T5a_shQ@x3 znKZ2hXlYTfBaDZ^p=hA*2^JtQSk@R5kyIK$j0>J&fz)xx%Kk$P0@9?Ti*!x7sgUcP^_5jd9l_ic+FSi0~E##RoZ6E~|HEnO-^k%IUnnBRa$# z&;D#=S#e~4`0MpmeEA)|>aXmt=FiUe@>$mxfsE}2_2PchaN7!R_>PHaj(a&X`v;7)yPGPuPF!;8I$bXLVv@DBaPTi^Z~@fZ*mZ3q%nBB)h*fJP0R?t*xs`XRqi?DyF35Ki_Moq zaS`|-)4HShcDy_z{daBdMlRCXJ3v%k-}c~oF&i%q-rnkX@s-j|b3MdGT=CiL7AO+B zoEXF*B9N+|o-uOW8n(>#wkgRK1XA1{3|jW{{5(DG3pPi|{I<$=qME8IDIK316zC0H z3@ttognOCICr3~u9_8QlIl}IVqM9~t@uNwhe`SwI5aue)AEp*hic6Q+xM&`aHY!jr z42x z$ov?6%U1qtqQ-L17a3Iq2Da9IZ8-rgkCH-j?Z1}}9Ud>Y@RYE8$zQ5%Dukvd$zYMs zL84=0%+1Z)ysrkBhZHatzfr7+2+<^DCi|}N^}E|o{=JB-%m=~yhM4nITE8+bD?eMp zwQ7hDS8DQ}C}Cmf50`tXSxH%$vF|sOWyrn%8B?;bGM$X)d7H=?e%PqBUM&3ip`W;; zvC(Qx3^C@1V*1m&4;MXMkFWC@B{cfsmhF-g)I!%4`*Th3APu8J&GcD{)g?jr4cl8+ zQFWk4w24YiPWF2`O50{d*Govg{rfl~zWLI=f`Z^LMvrAxTW<)x2ue2cyxDBJ$aQFS zE!oBdP%z1i*#q_u-Y~P9dNef48rKq=0&$i+sid!+oo1GhF$kf{1?nxsdiBc>yEP~6 z9lLqaMDVdEI_=!*+^!ozlIpCKJN{}WwqYEdncRwYzsoaA0rw*a+B`z=XVb;=Z_@`^ zX?N!We%UQw@6rfanW;&{nIt+wa(%;IDsJKTMEDD7cpQO$Ld5QhDHllubG)5;Tz<<6@TLf9*WzNN!bT$dmDZeUPwOtNo~ViD zN=om4<3YHT?2$dxK z`qO5I6LQqTMa>0aN4O2^GjNON_`Dml@^>~`rPnKw%Ant*XSZfTVN?Wg4|_64CYpY{3jW`A~ed}dzjhk*K{u>~x>igq`zY()NR z^0A{yWkMsDBm2pdjD%xJ?ILPk`1IFVKdrg_;d^kt+8U_@I5agzHrU5rzW~gNG(qZP zgsT(4@6k041B=T3V^$)@0wa94`+;a1`yDL>3p907N-k_Cdh*Ubue>TB3xFMZ4gEoT z3*JjYn`I|6k@6X3x1zQNAau-8%*bFy76gRg#v-)u!N|sfvmVljxd}X6lvK86)Yce? z{?e85`d^P>fwfMi;xFQF7KDR9GZ5wY*p4BekVxP2=Yv432onh$zP-{COTXINN-={S zzqaD)T&IJXvV&R2ljRNtCEez*yC1M=;_%U|3s&lz-4zbz$!qaETvp;J(l<1CiyjoVRVeQbElb_>pmv*&D zzv}Yfnv8w8{C@pDn1{?9#G-rYs_HP)<4nY!E`f3>uswwV55XE84w;|BUg|0s{x=yK z9aqhB{RRyDu}d?)8^weLd{n}tZt6b};z5JFR0WeEef9`YU^w1e5o%$V=;Eqo>gc1T zo4ihWAc+Bk<^Z)x^Y~Y)kb=6MVHB-d08AZoAy@C;i7DHon9UO^^SB2t_-Lv>Uq5v( z;wRpLC_V?A4o{dfM7%}-#v2_Y(o?fIZpWUpeeUN?f|}c(7xY}Q1kP(F>m66lhHNX8 zTCBfF`OXwyr5CNZ87*oaL5(^t7X)|>{B%?uwrOxWV&W|B|t;N<~t=0CYW(Cyi_%` z$c!pa57#=Cr|G;aPqhZ&7TK(~)e1YsO7=Gw8uHeB@JHpReZA~z69z~^X!VV}|2oAN zf)5MGZ~TgICBx_wEIX^sa^k8-17XHUfJgaGen=3Fnl`W&ES{AN04TAUi2_>-%oMFJ zGhuPtZ0)!F09?}_UM9fPaT}-JZ|Ez{NOL)sr;O-7V|b7>%%I$Q8Y`ka-|V_LQLq|9 zjtcm!?&OQfivP_iE;pYCVlv6Yn$Q3z&QhH1p&BNrXmpg}QX&!x0Ir?MszAr!3J(v5 z$F&J&$JU4K#S?d{Nq#QY+=P|nYpOw4t z(}~ZM5s3O$9wch$u;MDCGLZMrP^bj>L~90@)iyg&-`0JI!bfsKiW_3|huGwn3?WssN}J{VuH@wZ9P-Bda5^+JR4Y5pdAh(-=w%6-?OVSKXBA<6 z3&#Fr`@ca@9GSlhbK&gp)?#TL#{zLsOG$k-hcv@Z+!~H)3YM{&T`=M=Vbh3-KC5n& z_)ydu6EQiHxa>cnT>jQJ$|Pl2s9I(Kk1j7$q)R1JuIst>(XWJ2b{D&*$j^g=8FoYeoQ;A7VNBL|q8&-ak3< z(;hFy1QuMa>fE;W<7M8s%s0BQk@;N@tV{TyoJx#)AyU2%I=J`W<*E#DY=7pV5yC=n z#pw>6pUv@U+*y%%3?>=tAOf^0KMT|wK=!-MQxx5NJ0t^Mlg{8Z?Xm#1SI>J*FkX5yA8PRm1& z7Y7*6`DZ(gqwxg@Gb8vPcnhOjt8l)}6Lsp5lXfLGCm_of^QScCLBp#D;mUTPGzUDu zVJVDxXp=?igC%TaS35G;!dX5Mz)~o zI}z`me7!e(JGr*i)tscHr2Ph8eWQ!N$jp+ufdJgv@3|0VIEaDB$Ok^=WxCW`gb3HG zIw%aMFrR?9zlR#=#Ey}xzjG5OM3kMguEhaxKDM3zwLKx_a{GJPQXX3$^Rax~GN)*i z_y5fTWI`vV^xg;^w32;snY6XxxjJ65*c}r?dyzp~h98jp+n`u@Si~EG>joaKA4j)Y z|KfCGua2VWB;IOY(%>{-laSFl63tS}QICoE0|AJ$ax;SD*V?!j_hN5qPufoRDMsc0 zJ?GRjuH{I|dLt)!)%h%Re|g+$F#@SZCT8g0+~^&!%9)^UDmY%C@zNmKt*%IVcK zKAW<#vimFMyz*=(PfZKyBAzmw-I*UcQs3>vQFs>$U2D9Ln|`QDfxb%9PPNtsCx*4? z%5(TWrVI@Y1%EEX=T&+GPofsIS+cSdkG&6T{wU$B`d&0frrWw5&1rl}G0;ue@zx~^ zdT?r2{{LaB4F%+Leb!$ezvBHevUqSXImsF16(+q2w~5zkt1-FT#ew>mg!2$mXfUU|A4T(n%`{d`-=B5;wEe)3D`B-lje4QV7pjM;EhpA)T} zoC!B<89`+z&Pi)?BwFO<@)kep52ks~zFT5a(jCe~_eRT>ZI;*Z-IYLVXx}Z23NeYz z=y_Ia1#SWX+Dlze9c`=kIx7F3oB@gKMgAi@*ZkC;da(m_S&-{5)vY;y9Hbvk;VCdR z*U2jpGGf3xD;>f#b0`j~RMsO4_+^3_pOa#1XYFpSL1N|U>3pP(4fK$0wvdumPf%+- zyjLJLicyqJBk`H8t`)TEzk+sa8|v=f$&=BhzTa7?%{;Z>-F2H0QBlTCAOS-N_9;=65*9Qx}MUM9)GPL*Se;WP&;{_yh#x z_F|Tod>>$EUS*G^4aY)A53Yd8F%jb7l4JP~NfNuKGX6AWnonsg0b-DBj05uDV-%*G z*aX#AruX|*x(>w-rP*|Y5bLI*ZD2UOp`Y<|Flds^Sz+zxFaGAr~J#t4WqWL2uuG3j~ihlGZ+uM%{5WauzM0)_nR&Lzos=U*bUnujKIG ztHq1zvfQrEYlUf^4>s(kkS9hu&mQ& zYT5HynZ%45AxT^Tc@6NVBfqu>Dgi8i%dcsPR53!vkSH3nP;&Y_Baf|RIo@FvvyQ9n zC8pVtpCx6nV5>k;^y`$G^GV%?vRkX`+-AvtqtUJR1Ey>Of!Z!z@cUP7WG~PuOm;e1 zGePM4^fcVC>b+hJIrQ;aX8WA~qUnoF7xcRP1E;%RLzTgwhIE;z3eGf?(x8+1 zRljYX*9@26HQk5C_Tw-Oj8ywj06;(_2*BVw{4m<~d>kJw;&S1d{CckB;@zyGLIWs= zUF4vf4+8|eM)?qXL$>eHE@1(_j;c7m$9_g!{8fn7z%jCn;gZS>B zEceQaWBmWEZiTk4p^C`Zg2{L>DimH=tEsZEZ0kzYt9MvzEy&F`vozg&aOqHatAfNk zWK|0S%*coMT;S;V$K~Sl+{b$Rv{k;%@f1fq(&P3Mw%*>mqqocv=MqVYuR<@uXu#-f zjj&EDGbs^vz<88B^z5lvCmY(tY=S4x`gqU07;9~9ZN&QMJ0JJzcO)H`W=P{*dy(+1 z*@{H;lDBd8F;)js`_Drn7mob?n zeU+?}c6)t~Iut(Rkc(h~hw6X-?QgaGIaE1#S(1EC^uq@H=F@7K4Smlg;5S&m5QP16 zf3jgy!7ttQA`=JG>xo42(#JHd`gP(7T#worf%?XJwb*r5u8ghevNpX?*lVOI{&$px z<&JU&yYTOKHsOF{^Rw>W9111j1-+5T(IbYEAhc&Z@-1O?!7MTK^fv?bUK69WmcbPr zQP!KPf8_2W+B3zq2hZd_qtU(iz-ccLMmF@mt{X>Wccg`4uD*$1q`~-}TcggiG_(B>} zXn+?*{V(Ld&=|Y1N)NxpBSTclWN{WJ%R9bI&SWmuA2BixR4@*!>5>Z?i{2bV#i_mp zx85}~!$>qCV4x)dIreGoV;e6ewkwvL)%lq{QR=ouCP>%Hyfs^)Bdo@4?N61WN zL)1Q}*mPQ9RB+eJ+1^KzDL79Mx>Nhh4W?hlUu%DL3TZwX%kq3&)rW7P7Y)*<_&5 zm;M!KzmBRQ6nM$J7+R{1G~a9E-J@ib>YaliSM_S+E!y(he2id~#`EUB)}DY*WR%W% zdrMWhi;3+?@wXfvx4Bzn?PT0U>r~QKwSq8&jcyNjj#;@}PF7O+E)rZyCv#7k;4<4=*6&b*jB;G`Ha;c&%?dROuB%z85pdo;&dIW2K zb&;>93g^Ax=tXPAkPI1_x~{LrtFY*JAAGU8y`dLpmYjtIMg`v1^Ht@MkE6$u?4jYY zTrn|`{sS>CJz?DXcmHg^PX^;FE>ad>?g7*WYYczxSs#ZcC+u`62^0upI+4h-_B{Vv zK-_-|p!=YKi~OsY3k=SXrWitEcq<yh- zNha_qvLoXL24a@V|1=ZD*3`+Qp(hmU%$Iy?jG&MfTFgZB6Q7R$1L!q42QZ7&r7S`( zqIUXdjGhBdeNBQK2)v~gw;LGszk)BY9go7^j{8tw*erN&N+nP9-xMG0gX&*W(`o{S z&zVROc3{o`bSYK4K+!)RcDf?uGJYm>QGyjI-#Y69oNtjdEC^Mp^8i#zMHw52fM`hM zAEX}8Cs8E1TAN`GzTO^!)ECSb6slHhbJsjm zrpM0BzFysYUss}8X9pLLX<(#(2!N=6mZI94uTHex*DAmN=~9F}U;4f5J%PWRq-5vP zr(cqjROFPZs8*&-I#o9IX;Vv0`7TA8Cd6U6Eb#_fFwJs<#ri@LGD!RfVu_Hx(7uI6 zjqvSI5S@Z7_lS9uO6AFr&P=&RP11Xf-VbiYJ^$>|7=tJ49{js61Vfe zo>o_Vp5SgS0@J(%i=R*}U-pSoi{){bJO;_5MXuCd6TNG@ZB?>QH~K%6eN|jk-xu%D z4MUemND0y{4FgC@4c(1^2na|Hpdj5Hf`D|_NP~1sH%LoM4$VFM{-67BAMfitoY`le zwb%Ntz1I4EZ~HQ6KY7US>p)9&IhMUQW3y>I^@^0t_VdMvmpl-}o=evs?i(h89f zrPv8tDds|clz7cQNT&HNE)y^dYK)XN`KC7BrMKIhkxmP6AaPfRZo1CPMd+G*92Zca zb-TJc$y@cl{ag!k*H0N;hEt6fCNk3c|NL}`QR}hd#j-O+LF@3JM~NDfY#j&3O8+is zVhX4UC>cEa!kQN^UA6PR*-`u_ZJHxRyq=@Dcd3MUa}wH8rBAaBbiRlJ>4Q25AtvZF z=7*qKD0C}MRatN`g8R2V_uAYA^>dqiy3VpSO^xHhjEef9p%_NT0B8UaCGQv@b3YSu zNFG29dl%2sxkBvmjHgP{u*(X&1lTCaBR{L2J@>EAs}}bb&_U>IDo9shg{D;eRuPID z3M^=%7V4E)%}%!+FUE*iX>9;9mDd-6k0Zf}1mAN5!t)&ver!)?iTuoonmX(k(hs`Z zF^q4%M~AaJzE!@3w2rr3;=SEJi1J>!rZe&+LJ|W~-7m{}JXi0#*JE^|mp%3e5*l76 zu5)J~sq5B+Bi6M3Br3?p&(jG~L_UP8}NV?nDq1NL~->T&8gs2NL zNG%f`G~99>adWwAPYP> z(|U5yT%CY}#vs(UjS;!~dfYBl_!uBj??5#semn@wgT*`(1RBq_+>k;ilR*}tblC(x zm+xnDRi{r$9a72-7F!Blg*)m?45#O4ze27OL?3i4P93nRx%LIbAM-?psHp2@zc$Pp z$s>JOPo$vKWSlt?^j~b?FmOMfvhFkPd)PiuHcYlAxEnvZ2u97}#+8y`W=;MuKnj2E zze%{YMe6R(NS5^mv_!p*f|x+od=L;}EfyXnDfdsq zoy%Lbm95mS%PdLQIM82|wBrbfv>__WzjO^xYAi| z-Dh6?4=>O^T29e;{%hNiCqUxQ#tBU?Sh#7x8#@y_#<{k$e4#Gap;tSa<=cB)`LN*> zBXPSFoMI~EHgmfewYYt~>-^khii>&!nWWx9=QE?)K`^>83_Wr~2typD^S4NiS3UfGB`QIvOzustyXT@k4 z5nR`2rVk&T8(+dL(xP5B{k|zZ|GV^MxPB%t)&&r|4pt-`| zc^aX=Zc*R`O1YA&Bxr|DH`c8SNv~VH=-Y{jg4i&f=nV$0l8&tCod{0 zAhb+wD0zhWP{jYR>86j?ha=oo_wMN2V`Ql7mFMv|^KTW3iOW16K9^L225LT=`Ms++ zmTdicn|ZXItd&Z`!kSobcPHcce5m`yMasQkw!O#W=eGpZ;|R|kT4!SSenSOIg{V2F zJ639}xc!N|v7yRgwqA{BS)8?J$JMi=1!V`-wySp^W^&zN7qxLHK9u;cFZMKowg=BF z<)i+nB&#-9E?%}ad6e0kh~&UxoI)-t2DgKJ=SmesvC{%pjX!BVA{j3EJtk~fPs4t$ z4<|#RYOF-N)1_S!KJW8TF+Lv5SZ}elh`PP+-^=u!%x(pO41(rQpOYga>V(zTae!S* zoWHfJSTOnEpZRBbd|K_Ai8B3*;&$O`b*0=l4XYldw2sZwH@fe5lzJnn8V^(Ben4=T z>}LyZricktaLSS#KNB+pg1$;QCB0wB!hTvjJ}jT5Ir5M(xT;~`JrlP2-GOI4ujFEW zP=vG?MM)G<_uj;PLGf!3Sy*r=QJjptv$*eK^^3i5#h8l2(QH?5MolFnijcl%ZLlW& z>S>vQU}?2CS(@>H9Aa5%>ETMNWnr`v$*w~wjv5_ZibqM?r~`?Fkp$J8$3w-;#>PXZthT!>9#vXU1O4She0gr;D_GTs z`F-b>k2hRu>cK@aiIhLS3@}sbVCY$659SKE` zp)Y3Iz6rAS=*Fe!>Se~1(L_tkp#o_Yt_Z!GB5Q4iv-c`?98e4W=R7w7Ta!aMo&?g{suS;2JgHeY= zp!8}3tg>=g*q~t}rGK^A&$}Xf;{_met2Jv+ID_X2XDCS(@qCeGDpF=8Mpf&6&6Lai zr!FVWJmgngz;rz8Gc741R3uR(5|XCWXNe$Y0Y;@aeU?O_Q}o=-8Z4vM$d=zn11SOh z%8tOy5^!9JhB1{P$(}kiOMspIVPpy5JkDLH{F!L#DiLtIaGrvNWa}RwBvQs z9F>iwUKWAif4j2{>`n+;$eVe_>W)}*S9}l;%A5WAn()^w!??=1bl7vKAStk-CAL%~ zJu<42x?>S0YRe5=jYtp@3mprWONpksCf812iarUJ2=C z7%|j3B;LGGtsI9HtbxXZK`n2SugV2NW7h5n`(O6K)dK`KJf!tZK)b|!9kgAbgS7Jn zH!}+OUcbVEtu5(B!=|~3g`o_{IVHHURoKLVcx4a3eD_5m%*L{uh$oJDhSFv(zzEF! zl3#;fDk{|Ab0p8JT!s&7VbAzP3LQh!CLWU3sgf2TJlxAL+NjcRE|}#r93Vd$=XfOx79K!Fl2T)Az=LdE zb@NJgQLt((NX8Gr?q=(%Nx^)dr#^r+DHcC=V2Z|Z=Wzd-3(|*T=9^jP3MZdt@+4~H z*g0kXbTsS!O8$gcV12+#hXr;08%d)b&1n7-WR&@)wuQR>B6;3OEpy0bWa)Y+`PH>u z|8I^{>v@qgvNln-?^wt?L=K1e8@>FMka$+9Kn=mQA?Fc&K+-G#N!-WNSzm<_PemKJ zWX_W%{N%TV|rudP4=Rx*dFkk93vG)mL7wr(;*%1CO` zP)hsB%z?|Iv#bgT0*z{d44v6rhcA$uX6S1`8%IJpTq!-mm@Kscle*7Qe~N04UBD}R zmBAY~b@nqm!oc}T@VB+0ty&+=S->I`NyUz{+5bCHg{}OTq=h}@t|%1IF_M=##&Bw8hVExQ(R4rbJib*;=7$k;wcL1HpyhD; z9M_)ld{rZ3;U;NhjP88ZNcYoz&k_jGxA1l&qd0=qwAQOlzEK*1vN1C8W}?3jU!Max z-`bzgm+vB9)tUzpqs0z!2fPUq_ssq{{CIGbNzwH~*mWkU0}!}-UOy5VQQ6Y>8Y8FW z)!nUe480amuzMRElqC%235JwXE2kJ;0=?+sR;Lwtpv(^o&K0c>4W?PH-0FJphPC+p zNAIQaukfvuhd#8X3k@j* zv+`4dG>nSi9>&kO^jaX9FWhyW5hH!NND?Aga83#L1xUvwt33MvF&ZESG|V-tLBA_h zOM!ajMS4gQj-*jCN9F7L;XFfamuentz5;EfcLsInKqIH!a*1(q^+OWe#`Mzw?O>^a zo~^%czsv1`xP44mGmtXY;&Woof$U}*dQb=?Jv)=4lv6l|w)hI~POr#F=|vdBA|^>T zz@QXUpROEw6!`qRtC}A}6)l$`bLJCQPJ7gQu>M)&*t*U5KXN5wi587upy_9EGTxMl&j|GZlGX^`VN{%5XfH}4yuO`%Juu@M= zlSf>*`!zL;LKA1Tlj|!SwRGY59Zi~>tR5DDj$qgIgPNrJ)+Tqm`4(vMc%zf*{enAa zMt~Uf(pL18O#&4WMtE!MXc+VET?M=NC}N`r_An>V@} zomJSN@tyG)kR}L}_G8#h78pDE(FEKS@tE~tuXWdqSj%+lRr|U(jSr7bE;PK;5cw#zN_gK)rZYk#QndI_+7HNCuB54-97xK} zqM#r$lp=?5`}}1JR7d;c;evbbaGHh_ugkA!gv9A)54rJUhb)XYMDoVYJ`-X-cK}S= zn;64g{{(d6kaK1UxQ)_QiXxI1kK0c|X8ss@{@-2z(c{*~rq7qF8(Bg-cboluA*dM#!xqoW{+p0&bx@gI{Uk{SH*SqiYe(^(Oa$67fY_Po7g*Tl1*xAW+ zdpOy*fFo8EXxz>T5NR!o8VYw;cV}FSHqGPg$>rB}yAu&yH_#wPHbpP%+R3+~B8ECM zdak{9eVeqvwtPc4r@hoF@Ez?^POh|@&y`C@A_o2Sagobt8{&uW)L54;*4Yn)OyGFm zcxHnL!*W{0_wC&+wL=7sK?}MtT29kxwp*0Z_`I3Pbqj&kC(urw&a{m^TGj%Y+Q#UqyD|| z3mtH}PWht5{S=O+JYGd{MU74rPge*&YpJ7-Y3M?|lgqjbhNu1N1lV(Ls`!ztHS>d) z^;U=f@(?@QE#i3GGr}Z-jKglFY~*dstzzX7M;_!|di^uOy0`k)wH!AeDY<_>*2E-x z9xm;EAtrdgT=P0CiSP^M(L&>keu}eW$v{;lQfVn=NdpsoAl~X9E!nzdcz>JCFa8!+ zp;ujE+^mBQg0wMBEPe!dPm9%ANpXT_$_@CJ@3|E0R~xEbz|t0rKUCdk2SoD`j10ky zdrQTBh*6pi$e`;y%H`5Lvmjg3c9Qk&A+Mlc`hqZLlK17oM5S&@ztT%h%lKC2XcRqY zgd&QT+LuUrmQW(K4 z^FDAMhIi%4Bwgqii>~UDXk|*4OR+;Cw+D?`Y)U-XoV%;=+dux|phTl$5+-@sD&Zf! zxkFZSA}1`~PhqI^bi7yo#W3Cs(&%fft^hQ2{ZRG=O)%;QBU%N00iUW1%#Fpu#Ke{oC7Ux`tk?K^SJ>uT*EbpC_#{I$1=bVP%Z?N_%>K5?W)oj7-7|M9{op27IhH<&53* zBD|}$$|T1QGF3WhQOLPhcVe#DvkCDHR#wRPC`Cln{}6Nwbl8Hv7RipWSjb(Dyr@L6 zF@kOW=+Yo;zBD>qnOLl-v8caZ+49}A1ixx?&6)X!9c4l^HZcBrWrSM>G0<6cMNaJa zjX${6eIJC(GzCYbK%vmNZmc$zACei~IiYk60BcsTvMyR+37Bvnp2xN2BM0R(_c&}K z`WnT}tQha?9U*qSsPHnYUk&1t>);T9lU%`woIp5@$9E#`ykTL%LX>VconF8F2rRtd z-J5v3t#H!dUgWs&5?|U}JZl5moG>Nh<)-Pg$1}{k;-me7T=Q7N+NNZw5=D!R zV}+@GFH@vW5GvHd6~DgTy;L`e_+=+1>Zb3}GiNPs?vlaYGNbwuId`TR41&i!NqK4r zqm)E8^<1SVXU4o$#!b0RInEb!yua4SI@$Ys)VcN+S{Zc?izQAOWUB4n-w?EnI(+gN z@5dt^Rn?x4E%r~CN0;s|lr64LHtgSNt$fs6uiSo(qAl;za z@5fz;-)C*%7xnmw6sQV=y;Vxy?W?9Os=-LXyn$(w?bFvdxp>nT*X1Nit1*P}yLzSk zKfy&ZqzvjB;NlqJHjgHWDLSP`<~GTpGYN-#jR+F;pdbhcEs^BP1h?_54eOP9KFc5% zg~LCz@erv=XU7HkzSYk|KGPS@shFq?Ks7g!%xmNx^I`OWi)k%Vb*5kj@xC9D?Q}k2 za7ET1_j>2WdriP0cI*laOUIVL0R>}s{M#65QI$*AbS@O9&qj!!(O3TG+A@-3o>G6Y zvBf&yx;3W|!S}V*{81Fw+i<`;9ENA3*`WC;N;VSB(w$aSTb38 zY-?3_>@>pSiMp$>(&*#WNWVOZm)T=Zki5&+2<6EyQCvT5G+PN`%3Y{c#vqr4P6T!h z=ij*WuV?aVnf0ry*Wj~V8->iUoIveJQc}CRn;gwT!J<&0!*IT)AFIE(s)UUvA=$R; zoJPcsgb5V*%lY4D;Ck|w>)Nhs(H9(;CO1VWBO9aYa~&*XlWc3ZsPW<}{$Dipb&`_d zI{H6vh!h~b6of1cy%eAlw*BU}xN8lI$F(K4+1`%1zpNlMe3|(?7%1JiJB-8=k!fzG zJ`OVvw}&c3O9B^R^ElhgnFGA&h~wJjB6D?)F&kRH8z!3t`{p=Kpx4;Jx#_y16_NhC zQMr`S1LBCxNv4btdpL*`aa(}D7j;Q-IW*KUbXXR;pZET@b1!uF6VI71H-Hohp4`>) zN2EwT)>`YkhYXI2A_hwH_AX z4v(_4J;H*JRA5^pSK%Z+5{BP7PO~im%=y@ddPVJlknZl zIh4oufBcLFplzep0zehp!*Q{uTK&`YAp+nvqU0v4C_bDij}Rv3Uda+^uKxaAVeI*} zV{Lb_77E?4CPg}Y#S1pFa6@Q_KWI}sBf{W8W^a-1tFNy*gssjc0xjnrU1W*4ku9H$ zNp8!29T0uyaZnud7PkG{4-rYMI?4YOQOW-^Bvw|Z@{G%cW{g9)52YovTAO*Q#A|D` zITCi4rrSU*a>WIgNDtI+F&iC&dF0>(WoNrepPj0xF5&~Trn~d4%aklMO;%1PnP-)3 z-PH?#8Fs~74XiwS?TVZO@xGLsCDTm-n28_Yi${_diFr33hrd&Wd48FJ*7c0&zm{1> zHR{1VqEM*zHf%;*eN?}F>hpU`gR`l>H#7ase>@vLZ+FT`(l^J z>~~Jz17dy+#d{dwveMP!a~vYXn)sdzAfr{N#KJ#8+6jJUl&XprFE@~NJf0a+A~d}x zVg~t-RIcV)%@7Q#1@%}@ONpkC*qquxIKPsY6hB1df`B6E`|{$7w(T-Y2KHbJRJw-z zbr5hIPMDN+jr>k_lhTHnW|u$pB+VN8?21^4@NedSsfzp)0D*?hg;7|bY~q5--_Ns! zhlAd|d-ve6Z_HsZmFcp4tn>p_C6@s|kbWoM+Il`!!_e4kWI9hi(*NQR;d$5D@VVK& zt_L-cmT3>@>`0}BuQ|zw5+U)G47#3ebE1M>2k4QiJ{`s5JBcENDn~6w(P(Nx8yec` zyr-K6i2Ia_+r+YI+Bar2GC`@5&Yk`~hy9><87~PCIK&!)-to0IxxsmL_j2*M#Gx)s zucoM>CRhJ}pN=;t76mkK#9E~;KxZkVgHlujs{7a(ls@<@fN4ngh{x-f+G4aAP!HGV zv4Tj?)1geCaz75A&mOft1_Fm`fe+>~xBU3iaW|ge(PQXPT7u--BoT5h=IpkW2ORgf zOMYSGfPv;i-+c~5%f*9H0@qM-$|~YYnM(q(Z9?n`iXGXU;B_8hcT0j^_hqN|HV)oc zoc3>U+5Q4c^+nSh|2(z_HTrt3gXq`|C*Z|eZ5)77ybG^G9eQs z2btqFC{@JP3yjW;TSg2`7=eNy*4DM;07@|4_R(w^ff(?QfqR1O7RNuwh^+_I z78=bLxb-pW!#(8g6KkUnSE@+^Wc>V$lt98^F?ZRt_cuZ*Bk3nP5e+nWrAoMe{&ihS z9xo{qh@Zgcr4;aKUFVQ|9Qkan(risW8fFXv3Y#0B8za;HK3!)7{ISsa5xX zZ)A#jQ<@(;?LAff9JluVZf4UWONB9U8oN)|BP1spDW0{7(Simd9B@K*iv+j;&S&9SNsycFk z3jla(j9|+MMi{yowH0F=t?GjLQjs~W@4rAEu^d=?N%(1Rzjf{Q-!6p1OxfVeTt>Z4w@TXA0(Nxg-Gw?^P!|$Ajro&x5Lq*fw3GkKyhz9bSbr z_bX)tDO{!|z%@&$Ze>3MZf$kfT%2rr%2w0I-MKuUl#pB;WQqIk>{q7MGHAmEwqx%P z7aQ0h(Y4z-;=Q%zrBz{>7ZEQC#UC}}Niqd7UNR;K2*U=k_-tW6txjsTM;t zl34PfgMjw_akyv9$I{H)YO65T=<#|77PNR&PmL6jn20UsX-iihlh4`D>MvCv^4BDBP$+vymFRO!Uo=pz8^GJ48U zw_+2LI?z}r#a?)Vq2c|Y_I3vpo9wMhM6c9^BfK+F5P_E<845;CY_swUK;8jC87#VT zv157cE#+^lxZMn{IE>SI-k6T6sHF=^p+XWvn5olMv?rm&9VJ${PIIFd#P6T(>`HwX zL*SI_u(VF;9DbUe8^Iuc5Cb@5Ld%z<9m%I)s{Qo`5p~E{v>U zcJ~(N`fZH&%B)!ze$Dq&ZV5xs^$@3h*HP7)!{e49XkX|Ld&Ti&=|9nNc;?ede@1vu zj`91EwcNfke2fH6Zf{_Jvma9RLc9Rh)O`nYvqH2)efH||Bn3evZsqPzGl^|1Y#eB6 zuP3Mj-oBS=8UhPAVf`!SxZd=*{$Hh8I>Waf8P`g9nE~ z2PlxG0*ZptJt7OluZczDWQ1M?h1yvjEUy%708!;EKes!5q>3$957G&_;=+HE{(OhT zyn`-^*gV&<7ev<)&K&k)`#hYTINt4DFbHbLX-QPbM$4s|X~k=mO3X5f)$#CV*YAZk zC@A#HcP!j621Q1i3HWzw{KvLQaJKIoXqX;ks7BgR?!5Lk{Xw~kmI4_N&XWgM(S!e> zDl!bJK+LQB?{{SZNcZ8MD2ZY|KrW6^t&_UCbZYVM9jk_OZ7xV!n~7M{%x)_^1X_>R z_{tVVlTcRu%>tV=wZVJ(09EJln^=a{ce!}VQ0pL>`5g6dAWh{qBh)vX{b}KT59oVP zD{FWOVk*){Q#kBL{OGP`-pe)WeWl;lr2dM{N|s$&qA#lF({8xIPV5-P^rlv4=#HOp zs5Il2NP?bzo2xO8(kZ2lFjNr{T6fYV!rECvB#T5}=B%x*fdK_;J2B^%R<_%B-t{zs zb8{I3@|#JeN$iF2q~2lHU-aDcvT}c5aM%wY(wX(EE2*d^v8}~*@6DlLDSbz+Q&DW# z+T=1H-Xv2DnVQP{9`4wWbT*OXUOFSV&DZl5z%J+bo8#(JK|k46H}~LeIGwd z8hIL4n?-0IOtfu{#Yp7K-s<$QR?GKjVCKE4+?}cdX9}auQ8bJa@uenM@DNjBFryPo zN4mw2WwbB3KTZI$9+_T$Z)rzG&ocK*GExjVMb-kBy=h_H63~&;;ndSxhlWM(tG4F% z7+>0(_qb|zI3Dh=3u_6h9dpb>oB?jyue4tD!&(+D|NL*GX=mFhL}FteS}Uo$l)y{A z$6YaE{Ngz|cKdx!^%rXxZ?RDap{8d!s&Y400gB`AlHaNK4(ff>;)*MXnJ;s(!;kpSccNs;(IA~o|6HT02K1aZw!3Le3TOJVB zjer*3=T}GpT8U+#@Ab^tZYt;jSgNnkTnsccm?4zl&lb~+@0-k&a*Ievkw~bh`R4!K zy=1ZBP1~w>hyC1hw#{_wAtlc?5BRChDn}?qZtQaA;N0ReGEJ@%oTh0-_=cH(($s$= zTJ*TtY_Qn4x#4&%i@;Wrp`^?4S2+12b`f!%{j z;J~);7=URUX-0BT{g=`d6i}k^2(E{-j=<%ZhZC15jk}0i&gNZb&u5;Sfp|>x+_!2; z&b0sAVn&zDHK5GvJZtPBaULMvErOKgembs@b#vQ%?05GY#k2W(^y_Q)J#Np-VL%=W zRyiO^#aCi#sco8633NNbpL<{Fcdh+AR5+{}`Q6_mbidKrc7M}$ahh?qJ+k=t`yT#x zS%i&Q3LKK=D2Nk~#?Dr{P*;K#Ff+o=)%a%$B}VvudUlmY+=Bb1`@zyhh~ZJz!|9@s z$zyYg@2GtA0OKfq_ujOFLA|3yjT3``Zj z%|et;Hmua>I&RFgHk*E2v+w)%X>XI_M~iEnf{!Jko7*)JCu%Tk!@UVFTQ&4{Fw6&sRUVS--TPm1Y=*7pck zhmle5vDFs9vR7(tM$mp2SPwZo`1Uy*54T;6wU-ZW=2}>xOus^w{lPkKUr6J9v3E9U zYVu(+i-7ia$c;tyq4T$ND^8rXr1sP;Rq?xCvz0rvd7}#3_UCvm9P8X{$qVpG`^D;u z7Ox1E*hb5}&sxW@p9*6pTh?i3qs`ux(5mZkD?*~>xUD&cs&@Lg;-|-2F4MJ9G6@^o?oaIXI)u6rQ3R*S zVijk6np+B>61-^maUT1Z zn@5`uLMZucGks6v;-Cz?z1g#EQUCdNI^<4Dt5l<0o`6U!IVvPQ2iXJ^aLC#bvB!$% z`X^AZx7g*TR-VFn+imBr<4 z3)n8{$Rc6(mrLp}m*jx*m9PWqNhnY{m>XnEb)wt>vou|-bhwooK+6=y%e1Ol1HvR# z#E((qCR>@wJmuRh_PtrMaO?T9rYK&y*|RoAO}c)oNS6;Tg4s-lHR~j-O$=xxU(y^! zXkGtw`-?ZXB0BGaambfH-5!PQ??)| zpikTLDJ(}k^e)8vn(!gUQLbA_!ia z#T>#Z@#%)Q$|f~GvnLVZ&oieF#j0kSdxR704DbG~aP#uwqk}g!c#LMs8R8#lg_ech z;OsinKe-@6O$`h6?B|Ea00#*Te3_S=$n6Kp10s0$_E6$^fU@IRiP6pZX?TsD3oc!< zrs538HNd};%(?h(^Y^!9(Uo0w%rF+hc)KsNoE9>}Ao>J=#VXMTmo4u@W~$8+FmY(YsS$|I$~J)^KzQaf+{QM``%_XUmR7~?Y%Mz>3TuU7^O+h7{<2$; z+bD%)RMFNhvTcAEvskR6#A=N*G?M*PAl7= z0g=ML>nH?wYvDbmFt1DKSey9SxVypUyO%z_ zk(5Yga2k2Fj7x8Qxibw*dHDWZlV4#2>QuR*F&pW`){J18E2Hz+x5s|sO0n~f&nPz^ zQT{;obU3}PFAyfa8=r5peb@dHtI>+MZsthelYWSMWzgjK)d~Lk{!8{V&k4%0)|2-V z)KvysppMu;KU1&kp4)G}C-nr|%dTU25h<^zmf-Av5?*+las`DZ@$@x^`n& zpa!U=Iw2&zZYnt!U}FR28M=#_E$^qB`VBySKJc$y!MaPQM`cW~rrmFdRnuXern+ML z)t2qyRg;^E$ZJ5TZo7qv)*2Vv<#cnhl9l`YaR2UG$*D%m{c;7oN_&l!Mp;qxxcC=d zYZsKBlK<|`$yayhn^{09iBx+!+PaDG_mg|wFD}J=2Cs2a%0Qs-K|!UIW8W(~*2d#Jzo7C)tsBW{p`oPA&SfOK08mK_+A&SLk7@o!!CS{g9Evl)wT>V&2Ro)3-q$-$3%&A7*)_|v9s)E_C*$#o|FjR(?A*5(Gho{7 zDh#o+vzM?9W!=V{Er!y8p&VRe&Z6G?1Un-z*M-_zo6%+0{s1kttL%;{p1bqf%8SEE zxA9+SF%oy1G58A(@GQ7X&pH{(?Y3+AbKgH<9F=U{bvu^vnIEu`ODko5tDIPtETy7Gw#Qe9m<~ zD^>dr;6?(qE5eD)Rd$`Sce54KH$>u(*F|z9EQ-hPX>JJi9`DX|O#nmL8q#^V3TQN94{qDFzCPLf16YRKz-uFkZ#Qtc;expqiN8%ZT{1$?O$Z`;e^G(OuF#L5|0 z>qMjFV%zd-Y}ROFsN8()_byYfi;osu8&c*7t0@74EPrNbC-qRuql8?<|VLQqFTv>zG6B=|AEz z?+a@_q+m%GfIu`7x9KlhDoK&7f-KfU2o3}sBN8&@QiF-f`@*;d9Q3dEO=)%#A>Xl@ z+{+sO2=(=GVnxlLV937u)!PqEw1#;s1J>=vZIht zp1VX><3iL&|5b3DI7S?|uLB(4-5cw1XmEd7Mx02@@ctdcQW`Foyh!oNih7oCmfEytYOe8*t?_w_;nD%NJiQq=Dik)MuRy5;P zV+_y4`gQ(S3vQz*E6W1HW|NB!3ud(&{$BV@n~mEpdp^+C|sDnK6y?#{$^ zhB+1|d@8}1U?n008RC5QbzLwu!$cchPdFM_y95sn6%{8uJQtY^EG^|tz|o3mQ1n2o zh;C)>T;KCFXMh=U+EMS`kKWc-S|L^%-F8NSzPe%i7;=jassw8##-!oeYA}5WYn%-@ z`%|7wuO1I-R4hy4M883Ib)pjRMzz8MUY|df;5tXCY64ZXxDYXd&gOtnOy)50oDkJa zZ&G?o%ra0I5hixg052=Vtc7?;jwwiksDz1?DM^P_elq<9QRI(v~zc|a@o$iZHhZZR%q8Y5) zQCBFT0S!XS!7c2Ekq1^^<08qE=3<*NfN*UvPru+NqbVIGg}q}Xt?y<#q+I8J%Yo#9 z%$sFMgL;fSSUGyF$A%WigaTq7JIR}p;LLb~wIH#|;WHw7AIHM59zE4}J-n$ylCREt z{f8tu+GxP*HY6yt6*=Tg$d)aXEiU*MN(e_LQ52 zwhQRX9|;#6=jlEPIeAB|Sm=s-cg5HB^q4#zkj*p)r~J0znoo89hG~dRXO}=8lJK|P zG*mF?Ft~)*Ez^r({lh*ns`Nj6?D5{2L?O~}%m9u^F7;0X3Js3C^Jdg97@+ik0=wQF z9cGZHW~g8TRc>Spk}r=E>4jp!Oh*K7U}$&Xn|h&T`G8_JUlay3vi%0x|Ffise{EZrKUwItchuvksBunzn83 zEgoMvyt>Jvu4q4P79x*`LzrnEzjWW6PC(=Fs{9@;i5W!qS4pO>dKxo6s9yKsU%`u2 z*k6ojaU+P-UhA33AX?l0SPX|r!{s)u-+s`fTFX{b>Erb#AA$ITqj4w63t$MJV8wg? z@FEVaWtLk-?CE*$fake?8h0%|2jIv3SzMZi@yXqo@x|=zb9VCbl5P8LTL05x%V_a@ ztKUr(<+hghoft>AQ+!+?^&GF|5bL2?VY(4s^_?pO@P2fE8D#2CvL~a9q_oTAkeALk zvi+{^Z)x2BeX)$rx>+_n_WfJEv!|@FCr+YBgmBzL?;yhgd7mFRCE0Kooj(wm{zKTB z>Q&WjeTm70J+{UqafI0%uYbjU+PrekNX2<dSp+|JbLQ11@{ zV(NZ>)(R2JK5vmj@b?y5jp~R94rdE}Eaz>Bn7=)(v?)~`4m8kf#1DkFEx&zzR5ire z=>5yYGKIs~`0QayYcxaLVE~I(WNU`HQsgwYHQVRpT5I&~7w1NA+s%3@%d@i;zsqN) zrB)3G_@a(`Qz)0C6S&xx^IihakfVW($l1pP%)GO^xYX}lw(mgH{&aHEWZw4io6lP+ zQ--72_A$I!Q&EotZkG9A^30RF$R0Oa&YLT&zGH50b)rHIE8-FF^F0lIHp;koUGpx? zd&pc>V^UV>^i$j~%I0e4^2^{NxZTbY)#q%LN*{!=B^W-u~rBSe)-NQHD7 z(ocfQtyx%7%))^D87vd^w60RD@m`($0G$LeAy$CSI&)G*;H_AN(ljI|V@DBdAnxgJ zDmWn2hIoWLS`x2xprVf>pRp|UNJHKTOc|pBpJOovI3KE6f!)-l>?@naX4C_o*P<=W zkJCm~Qzr-8IFr=R{TBCegPgXUo+Uq8vp=L97XrpImao3>nq^j0f6B3`)7f@I$T;Mb zov>aq8s0i$xP=lzSY;UXeqHsO-;R)Db1qm)Q5qXX4+-nHMp@DOHQNZtsrSp!BJxTG zM!G=QJ^O3rYF{s?HEDq_eXutx2{?%FLt-DEQbj7F4rJlmv>s1y=$5p1sTe3;i?-iNNZGC5awCJM>7&xe%- zV7?(`2w7D>Dj{N=94@UzO^RZfBNMWp#1LJLz%(P(WUwYJ9YofQEeQoXd7Z7~&&~hj zu4_FH*!=Mo^LD+$rXa@uZk7RtlJX|z7l)BR`mqcCL`sKY zr|A-s6524lYZo1&DGPLyaTX>QtxRBgaEE`YgLzX0L7 zSVYIwl)c~ zCZVDAjL#t@3}&Hrs5%74=5Km>1Z&DNl?qhy&6EbHb-JwhH0gQDIM4EDD1dlD%Bqbu zLjm6E*=W~beG1|-B)DYpD&qR4oFvluAe3n(6+z^TQERM>l@EUl3ZsBYHJ;7ZWTnfV z6r0e!?&aRbvik~@O0H*Vi(}#r^CY>9iXBF;3C6di|k%?qNq*TwzXA&=tzt1z6u3N|I?Z4k_$=Cjo*a-4EgeLU~ihQfGfQQVZ|UA za^~GOI%!oK;o^_(M8@OT6oB}a7D>-g1I+bXSOg)c3HIS_ALC*PS@j)SFk0oNTOyP~ zLQ&IXa+ds~bfL&`*NdMYfh$v&&o`HsCOcFeT%0OH3hMCxElm~*@ z6Yo--uQvCg(Jo6j?oJJzL8*j$SP+>`-v-Bww}h@HKvk2lh=T;L9}J4X1l3UBTG#}W zDbIjG+Qhn{k=Cx*gu*PnHQx7dD%~f@K~rLe78?28fa75#`+4f+L~dxp0I{dUc4)EL zQ5mJqwC|kyN|PK-E6ZzT48n^Q;!Y6a@qVpgPIbvClUU)foObX!Coh^|PNbOY#BH)* z_3@wOPL{jU`0p6!+v&5(9fgLK9oR0r>Gi?$=EEg}p)!Gz5~U@c?C;17 z&p~`)tdqUiq#E^*Zb3y}3gl`8_L~R!Lt9G>!eaIX7SnGoljZHg*WDWhYAdzzq4c9d znvlHQ>uV=Z|8-*8=L_wg>0v|>m|LY5xvFYBT+ycY3|i#{y%bP3(!+HohokE= z6ddwO&RJj>AXJ>?u+1{O%&yEkyOQ{Kv_K6qLvAj_%<@!5foZiATN9ZuP*H`a>1f*& zn9<((e3{1Wwp)_%zR_4*+o{pW^QzP5ZB|Q!TScR0bUgppg)e4zipmTSN8EErwzbw5 ztR$Bt)xQWqNS>X?kdw%3Q;xM=oyx|DN#>Z2#bkdP4kBgG_IPqQiQ*W!ZRD(+}nRYtmX zy;VhI3>921jZ$&nEvEcsZ7437-m@B7Qb<{9jTLAOopZ=K3re9wR#hXod#g}95
K0~ut^C+GbO4#82_TZvYC*&Lb^nL4w~T6| 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

!z)>h|Sj*S^3m2&XmmKQf9Ml{s`QraN#j(Pd2&O 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 Date: Thu, 4 Nov 2021 13:51:36 +0300 Subject: [PATCH 126/144] docs --- ...3_Update_Table_JavaCommunityPost_600x2085@2x.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename linux/ecosystem/atlassian/jira/{templates => .docs}/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png (100%) diff --git a/linux/ecosystem/atlassian/jira/templates/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png b/linux/ecosystem/atlassian/jira/.docs/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png similarity index 100% rename from linux/ecosystem/atlassian/jira/templates/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png rename to linux/ecosystem/atlassian/jira/.docs/SMT-2493_Update_Table_JavaCommunityPost_600x2085@2x.png From 11ea82cd5f432595d20fadd049214c94c1df891c Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 4 Nov 2021 13:53:58 +0300 Subject: [PATCH 127/144] jira images update --- .../atlassian/jira/8/8.16.1/Makefile | 16 +++- .../jira/8/8.16.1/docker-compose.yml | 2 +- linux/ecosystem/atlassian/jira/8/8.20.1/.env | 3 + .../atlassian/jira/8/8.20.1/Dockerfile | 49 ++++++++++ .../atlassian/jira/8/8.20.1/Dockerfile.jdk11 | 49 ++++++++++ .../atlassian/jira/8/8.20.1/Makefile | 19 ++++ .../jira/8/8.20.1/docker-compose.yml | 17 ++++ .../atlassian/jira/8/8.20.1/entrypoint.sh | 89 +++++++++++++++++++ 8 files changed, 242 insertions(+), 2 deletions(-) create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.1/.env create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.1/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.1/Dockerfile.jdk11 create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.1/Makefile create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.1/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/8/8.20.1/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/8/8.16.1/Makefile b/linux/ecosystem/atlassian/jira/8/8.16.1/Makefile index 82c5a2de6..bad6d73b5 100644 --- a/linux/ecosystem/atlassian/jira/8/8.16.1/Makefile +++ b/linux/ecosystem/atlassian/jira/8/8.16.1/Makefile @@ -1,5 +1,19 @@ all: app app: - docker-compose build --compress + make build + make deploy + make clean + +build: + docker-compose build --compress --parallel + +deploy: docker-compose push + +clean: + docker 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 index 0f7a373af..81592d775 100644 --- a/linux/ecosystem/atlassian/jira/8/8.16.1/docker-compose.yml +++ b/linux/ecosystem/atlassian/jira/8/8.16.1/docker-compose.yml @@ -14,4 +14,4 @@ services: dockerfile: Dockerfile.jdk11 args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} 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 100644 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 From c81ea99c5d908cd604efd89a9efe9b307728f090 Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 4 Nov 2021 14:01:30 +0300 Subject: [PATCH 128/144] fix --- .../ecosystem/atlassian/crucible/templates/1/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/ecosystem/atlassian/crucible/templates/1/docker-compose.yml b/linux/ecosystem/atlassian/crucible/templates/1/docker-compose.yml index 127b0dd9a..9adcdc7af 100644 --- a/linux/ecosystem/atlassian/crucible/templates/1/docker-compose.yml +++ b/linux/ecosystem/atlassian/crucible/templates/1/docker-compose.yml @@ -6,4 +6,4 @@ services: context: . args: RELEASE: ${RELEASE} - DOWNLOAD_URL: ${DOWNLOAD_URL} \ No newline at end of file + DOWNLOAD_URL: ${DOWNLOAD_URL} From 14eaf90a2033378031eb989c8f762a9042f69ef6 Mon Sep 17 00:00:00 2001 From: EpicMorg Date: Thu, 4 Nov 2021 14:03:56 +0300 Subject: [PATCH 129/144] chmod fix --- linux/ecosystem/atlassian/jira/8/8.13.10/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.13.11/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.13.12/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.13.13/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.13.9/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.18.1/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.18.2/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.19.0/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.19.1/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.20.0/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.20.1/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.5.17/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.5.18/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/8/8.5.19/entrypoint.sh | 0 14 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.13.10/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.13.11/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.13.12/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.13.13/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.13.9/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.18.1/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.18.2/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.19.0/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.19.1/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.20.0/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.20.1/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.5.17/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.5.18/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/8/8.5.19/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/8/8.13.10/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.10/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.13.11/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.11/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.13.12/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.12/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.13.13/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.13/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.13.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.13.9/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.18.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.18.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.18.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.18.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.19.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.19.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.19.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.19.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.20.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.20.0/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.20.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.20.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.5.17/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.17/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.5.18/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.18/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/8/8.5.19/entrypoint.sh b/linux/ecosystem/atlassian/jira/8/8.5.19/entrypoint.sh old mode 100644 new mode 100755 From 953af784fabb7198a241655be6c9c790343d96d0 Mon Sep 17 00:00:00 2001 From: stam Date: Thu, 4 Nov 2021 14:16:22 +0300 Subject: [PATCH 130/144] old jira --- linux/ecosystem/atlassian/jira/4/4.1.1/.env | 3 + .../atlassian/jira/4/4.1.1/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.1.1/Makefile | 19 ++++ .../atlassian/jira/4/4.1.1/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.1.1/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.1.2/.env | 3 + .../atlassian/jira/4/4.1.2/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.1.2/Makefile | 19 ++++ .../atlassian/jira/4/4.1.2/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.1.2/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.2.1/.env | 3 + .../atlassian/jira/4/4.2.1/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.2.1/Makefile | 19 ++++ .../atlassian/jira/4/4.2.1/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.2.1/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.2.2/.env | 3 + .../atlassian/jira/4/4.2.2/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.2.2/Makefile | 19 ++++ .../atlassian/jira/4/4.2.2/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.2.2/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.2.3/.env | 3 + .../atlassian/jira/4/4.2.3/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.2.3/Makefile | 19 ++++ .../atlassian/jira/4/4.2.3/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.2.3/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.2.4/.env | 3 + .../atlassian/jira/4/4.2.4/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.2.4/Makefile | 19 ++++ .../atlassian/jira/4/4.2.4/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.2.4/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.2/.env | 3 + .../ecosystem/atlassian/jira/4/4.2/Dockerfile | 48 ++++++++++ linux/ecosystem/atlassian/jira/4/4.2/Makefile | 19 ++++ .../atlassian/jira/4/4.2/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.2/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.3.1/.env | 3 + .../atlassian/jira/4/4.3.1/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.3.1/Makefile | 19 ++++ .../atlassian/jira/4/4.3.1/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.3.1/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.3.2/.env | 3 + .../atlassian/jira/4/4.3.2/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.3.2/Makefile | 19 ++++ .../atlassian/jira/4/4.3.2/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.3.2/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.3.3/.env | 3 + .../atlassian/jira/4/4.3.3/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.3.3/Makefile | 19 ++++ .../atlassian/jira/4/4.3.3/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.3.3/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.3.4/.env | 3 + .../atlassian/jira/4/4.3.4/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.3.4/Makefile | 19 ++++ .../atlassian/jira/4/4.3.4/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.3.4/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.3/.env | 3 + .../ecosystem/atlassian/jira/4/4.3/Dockerfile | 48 ++++++++++ linux/ecosystem/atlassian/jira/4/4.3/Makefile | 19 ++++ .../atlassian/jira/4/4.3/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.3/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.4.1/.env | 3 + .../atlassian/jira/4/4.4.1/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.4.1/Makefile | 19 ++++ .../atlassian/jira/4/4.4.1/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.4.1/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.4.3/.env | 3 + .../atlassian/jira/4/4.4.3/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.4.3/Makefile | 19 ++++ .../atlassian/jira/4/4.4.3/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.4.3/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.4.4/.env | 3 + .../atlassian/jira/4/4.4.4/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.4.4/Makefile | 19 ++++ .../atlassian/jira/4/4.4.4/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.4.4/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.4.5/.env | 3 + .../atlassian/jira/4/4.4.5/Dockerfile | 48 ++++++++++ .../ecosystem/atlassian/jira/4/4.4.5/Makefile | 19 ++++ .../atlassian/jira/4/4.4.5/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.4.5/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/4/4.4/.env | 3 + .../ecosystem/atlassian/jira/4/4.4/Dockerfile | 48 ++++++++++ linux/ecosystem/atlassian/jira/4/4.4/Makefile | 19 ++++ .../atlassian/jira/4/4.4/docker-compose.yml | 9 ++ .../atlassian/jira/4/4.4/entrypoint.sh | 89 +++++++++++++++++++ linux/ecosystem/atlassian/jira/7/7.0.9/.env | 3 + .../atlassian/jira/7/7.0.9/Dockerfile | 49 ++++++++++ .../ecosystem/atlassian/jira/7/7.0.9/Makefile | 19 ++++ .../atlassian/jira/7/7.0.9/docker-compose.yml | 9 ++ .../atlassian/jira/7/7.0.9/entrypoint.sh | 89 +++++++++++++++++++ .../ecosystem/atlassian/jira/7/7.1.0-m01/.env | 3 + .../atlassian/jira/7/7.1.0-m01/Dockerfile | 49 ++++++++++ .../atlassian/jira/7/7.1.0-m01/Makefile | 19 ++++ .../jira/7/7.1.0-m01/docker-compose.yml | 9 ++ .../atlassian/jira/7/7.1.0-m01/entrypoint.sh | 89 +++++++++++++++++++ .../atlassian/jira/templates/2/Dockerfile | 48 ++++++++++ .../atlassian/jira/templates/2/Makefile | 19 ++++ .../jira/templates/2/docker-compose.yml | 9 ++ .../atlassian/jira/templates/2/entrypoint.sh | 89 +++++++++++++++++++ .../atlassian/jira/templates/3/Dockerfile | 48 ++++++++++ .../atlassian/jira/templates/3/Makefile | 19 ++++ .../jira/templates/3/docker-compose.yml | 9 ++ .../atlassian/jira/templates/3/entrypoint.sh | 89 +++++++++++++++++++ .../atlassian/jira/templates/4/Dockerfile | 48 ++++++++++ .../atlassian/jira/templates/4/Makefile | 19 ++++ .../jira/templates/4/docker-compose.yml | 9 ++ .../atlassian/jira/templates/4/entrypoint.sh | 89 +++++++++++++++++++ 107 files changed, 3689 insertions(+) create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.1/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.1/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.1/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.1/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.1/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.2/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.2/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.2/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.2/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.1.2/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.1/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.1/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.1/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.1/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.1/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.2/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.2/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.2/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.2/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.2/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.3/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.3/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.3/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.3/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.3/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.4/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.4/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.4/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.4/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.2.4/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.2/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.2/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.2/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.2/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.1/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.1/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.1/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.1/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.1/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.2/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.2/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.2/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.2/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.2/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.3/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.3/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.3/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.3/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.3/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.4/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.4/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.4/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.4/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.3.4/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.3/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.3/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.3/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.3/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.1/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.1/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.1/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.1/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.1/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.3/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.3/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.3/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.3/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.3/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.4/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.4/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.4/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.4/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.4/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.5/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.5/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.5/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.5/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.4.5/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/4/4.4/.env create mode 100644 linux/ecosystem/atlassian/jira/4/4.4/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4/Makefile create mode 100644 linux/ecosystem/atlassian/jira/4/4.4/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/4/4.4/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/7/7.0.9/.env create mode 100644 linux/ecosystem/atlassian/jira/7/7.0.9/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/7/7.0.9/Makefile create mode 100644 linux/ecosystem/atlassian/jira/7/7.0.9/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/7/7.0.9/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/7/7.1.0-m01/.env create mode 100644 linux/ecosystem/atlassian/jira/7/7.1.0-m01/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/7/7.1.0-m01/Makefile create mode 100644 linux/ecosystem/atlassian/jira/7/7.1.0-m01/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/7/7.1.0-m01/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/templates/2/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/templates/2/Makefile create mode 100644 linux/ecosystem/atlassian/jira/templates/2/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/templates/2/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/templates/3/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/templates/3/Makefile create mode 100644 linux/ecosystem/atlassian/jira/templates/3/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/templates/3/entrypoint.sh create mode 100644 linux/ecosystem/atlassian/jira/templates/4/Dockerfile create mode 100644 linux/ecosystem/atlassian/jira/templates/4/Makefile create mode 100644 linux/ecosystem/atlassian/jira/templates/4/docker-compose.yml create mode 100644 linux/ecosystem/atlassian/jira/templates/4/entrypoint.sh 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/ecosystem/atlassian/jira/4/4.1.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.1.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.1.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.1.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/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/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/ecosystem/atlassian/jira/4/4.3.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.3.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.2/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/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/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/ecosystem/atlassian/jira/4/4.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.1/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.3/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.4.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.4.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.5/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/4.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/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/ecosystem/atlassian/jira/4/4.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/4/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.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/ecosystem/atlassian/jira/7/7.0.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.9/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.0.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.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/ecosystem/atlassian/jira/7/7.1.0-m01/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/entrypoint.sh new file mode 100644 index 000000000..50ee4ecd1 --- /dev/null +++ b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/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 100644 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 100644 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 100644 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 From 014f391a2ddf71b7d8f893c066b1f9460ac2ed98 Mon Sep 17 00:00:00 2001 From: EpicMorg Date: Thu, 4 Nov 2021 14:16:51 +0300 Subject: [PATCH 131/144] chmod fix --- linux/ecosystem/atlassian/jira/4/4.1.1/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.1.2/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.2.1/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.2.2/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.2.3/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.2.4/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.2/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.3.1/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.3.2/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.3.3/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.3.4/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.3/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.4.1/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.4.3/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.4.4/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.4.5/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/4/4.4/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/7/7.0.9/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/7/7.1.0-m01/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/templates/2/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/templates/3/entrypoint.sh | 0 linux/ecosystem/atlassian/jira/templates/4/entrypoint.sh | 0 22 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.1.1/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.1.2/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.2.1/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.2.2/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.2.3/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.2.4/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.2/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.3.1/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.3.2/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.3.3/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.3.4/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.3/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.4.1/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.4.3/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.4.4/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.4.5/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/4/4.4/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/7/7.0.9/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/7/7.1.0-m01/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/templates/2/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/templates/3/entrypoint.sh mode change 100644 => 100755 linux/ecosystem/atlassian/jira/templates/4/entrypoint.sh diff --git a/linux/ecosystem/atlassian/jira/4/4.1.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.1.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.1.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.1.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.2.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.2.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.2.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.2.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.3.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.3.2/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.1/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.4.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.4.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.4.5/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4.5/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/4/4.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/4/4.4/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/7/7.0.9/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.0.9/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/7/7.1.0-m01/entrypoint.sh b/linux/ecosystem/atlassian/jira/7/7.1.0-m01/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/templates/2/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/2/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/templates/3/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/3/entrypoint.sh old mode 100644 new mode 100755 diff --git a/linux/ecosystem/atlassian/jira/templates/4/entrypoint.sh b/linux/ecosystem/atlassian/jira/templates/4/entrypoint.sh old mode 100644 new mode 100755 From 0a1c2baa73a37655dd46737f072fbc2693e731fc Mon Sep 17 00:00:00 2001 From: Alex Z Date: Fri, 12 Nov 2021 01:56:24 +0300 Subject: [PATCH 132/144] added Torrserver --- CHANGELOG.md | 1 + Makefile | 6 ++++- linux/ecosystem/torrserver/Dockerfile | 27 +++++++++++++++++++ linux/ecosystem/torrserver/Makefile | 19 +++++++++++++ linux/ecosystem/torrserver/docker-compose.yml | 6 +++++ 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 linux/ecosystem/torrserver/Dockerfile create mode 100644 linux/ecosystem/torrserver/Makefile create mode 100644 linux/ecosystem/torrserver/docker-compose.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index cf6c01eb8..fb17a5758 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ * improved `Makefile`s. * fixed `nextcloud` images. * splited `nextcloud` images to `pure` and `patched` (`zipstreamer`) tags. + * added `torrserver` * `september` * added [ArekSredzki/electron-release-server](https://github.com/ArekSredzki/electron-release-server/) support. * fully reworked `teamcity-agent` images. diff --git a/Makefile b/Makefile index 437af375b..0e4e27d82 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,6 @@ -VERSION = "2021.11.01" +VERSION = "2021.11.12" +AUTHOR = "EpicMorg" +MODIFIED = "AlexZ" DOCKER_SCAN_SUGGEST = false all: app @@ -121,6 +123,8 @@ ecosystem-images: 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 diff --git a/linux/ecosystem/torrserver/Dockerfile b/linux/ecosystem/torrserver/Dockerfile new file mode 100644 index 000000000..e09511a9a --- /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: . From 769147642e2e93da2f866543ecee76aeba3e1f88 Mon Sep 17 00:00:00 2001 From: EpicMorg Date: Fri, 12 Nov 2021 02:12:14 +0300 Subject: [PATCH 133/144] torr actions --- .github/workflows/torrserver-temp.yml | 36 +++++++++++++++++++++++++++ linux/ecosystem/torrserver/Dockerfile | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/torrserver-temp.yml diff --git a/.github/workflows/torrserver-temp.yml b/.github/workflows/torrserver-temp.yml new file mode 100644 index 000000000..509581744 --- /dev/null +++ b/.github/workflows/torrserver-temp.yml @@ -0,0 +1,36 @@ +name: torrserver-temp + +on: + push: + branches: + - 'develop' + schedule: + - cron: '0 0 * * *' # At the end of every day + +jobs: + +################################################################################## +#### Template +################################################################################## +# - name: Build Template +# run: docker build --compress -t user/repo:tag path/to/folder/contains/dockerfile +# - name: Push Template +# run: docker push user/repo:tag +################################################################################## + + build-forked-fixed-independed-images: + name: Forked and fixed independed images + 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: Build TorrServer + run: cd linux/ecosystem/torrserver && make build + + - name: Push TorrServer + run: cd linux/ecosystem/torrserver && make deploy diff --git a/linux/ecosystem/torrserver/Dockerfile b/linux/ecosystem/torrserver/Dockerfile index e09511a9a..eeb9b9538 100644 --- a/linux/ecosystem/torrserver/Dockerfile +++ b/linux/ecosystem/torrserver/Dockerfile @@ -20,7 +20,7 @@ EXPOSE \ $UI_PORT \ $UPNP_PORT \ $UPNP_PORT/udp - + VOLUME \ /config From bec0ea7bcf7f07486e59584dc823f06081c09390 Mon Sep 17 00:00:00 2001 From: Alex_Z Date: Fri, 12 Nov 2021 02:22:38 +0300 Subject: [PATCH 134/144] Update torrserver-temp.yml --- .github/workflows/torrserver-temp.yml | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/.github/workflows/torrserver-temp.yml b/.github/workflows/torrserver-temp.yml index 509581744..24e3ebc1f 100644 --- a/.github/workflows/torrserver-temp.yml +++ b/.github/workflows/torrserver-temp.yml @@ -1,25 +1,13 @@ name: torrserver-temp on: - push: - branches: - - 'develop' schedule: - cron: '0 0 * * *' # At the end of every day jobs: -################################################################################## -#### Template -################################################################################## -# - name: Build Template -# run: docker build --compress -t user/repo:tag path/to/folder/contains/dockerfile -# - name: Push Template -# run: docker push user/repo:tag -################################################################################## - build-forked-fixed-independed-images: - name: Forked and fixed independed images + name: TorrServer image runs-on: ubuntu-20.04 steps: @@ -27,6 +15,12 @@ jobs: - 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 From 61a21142b0f519ce6e6011ad2119d64217f57aee Mon Sep 17 00:00:00 2001 From: Alex_Z Date: Fri, 12 Nov 2021 02:25:26 +0300 Subject: [PATCH 135/144] Update torrserver-temp.yml --- .github/workflows/torrserver-temp.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/torrserver-temp.yml b/.github/workflows/torrserver-temp.yml index 24e3ebc1f..1586bfa14 100644 --- a/.github/workflows/torrserver-temp.yml +++ b/.github/workflows/torrserver-temp.yml @@ -1,6 +1,9 @@ name: torrserver-temp on: + push: + branches: + - 'develop' schedule: - cron: '0 0 * * *' # At the end of every day From 6f676e5a1c5983d7abf95055d40ced449142048b Mon Sep 17 00:00:00 2001 From: Alex_Z Date: Fri, 12 Nov 2021 02:27:59 +0300 Subject: [PATCH 136/144] Update torrserver-temp.yml --- .github/workflows/torrserver-temp.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/torrserver-temp.yml b/.github/workflows/torrserver-temp.yml index 1586bfa14..a2c4fd324 100644 --- a/.github/workflows/torrserver-temp.yml +++ b/.github/workflows/torrserver-temp.yml @@ -1,9 +1,9 @@ name: torrserver-temp on: - push: - branches: - - 'develop' +# push: +# branches: +# - 'develop' schedule: - cron: '0 0 * * *' # At the end of every day From 8a13d6d3df3ea06a3f2d1b6d224c0fe569dc8e4a Mon Sep 17 00:00:00 2001 From: EpicMorg Date: Fri, 19 Nov 2021 20:07:05 +0300 Subject: [PATCH 137/144] vscode --- CHANGELOG.md | 1 + linux/advanced/vscode-server/Dockerfile | 347 ++++++++++++++++++ linux/advanced/vscode-server/Makefile | 19 + .../advanced/vscode-server/docker-compose.yml | 6 + 4 files changed, 373 insertions(+) create mode 100644 linux/advanced/vscode-server/Dockerfile create mode 100644 linux/advanced/vscode-server/Makefile create mode 100644 linux/advanced/vscode-server/docker-compose.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index fb17a5758..f974020e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * 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. diff --git a/linux/advanced/vscode-server/Dockerfile b/linux/advanced/vscode-server/Dockerfile new file mode 100644 index 000000000..64e5d08d0 --- /dev/null +++ b/linux/advanced/vscode-server/Dockerfile @@ -0,0 +1,347 @@ +################################################################################ +# 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 + +################################################################## +# 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} + +################################################################## +# 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 + + +################################################################## +# 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 + +################################################################## +# 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" + +################################################################## +# 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 + +################################################################## +# 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 +################################################################## +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 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/Makefile b/linux/advanced/vscode-server/Makefile new file mode 100644 index 000000000..ff219dc5e --- /dev/null +++ b/linux/advanced/vscode-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/advanced/vscode-server/docker-compose.yml b/linux/advanced/vscode-server/docker-compose.yml new file mode 100644 index 000000000..6b70d72da --- /dev/null +++ b/linux/advanced/vscode-server/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + app: + image: "epicmorg/vscode-server:latest" + build: + context: . From 6ead4ea8f0d633a3dc0908a123bffc898204dd9e Mon Sep 17 00:00:00 2001 From: EpicMorg Date: Fri, 19 Nov 2021 20:22:10 +0300 Subject: [PATCH 138/144] vscode --- linux/advanced/vscode-server/Dockerfile | 32 +++++++++++++++++++++++++ linux/advanced/vscode-server/Makefile | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/linux/advanced/vscode-server/Dockerfile b/linux/advanced/vscode-server/Dockerfile index 64e5d08d0..29e4c1a3c 100644 --- a/linux/advanced/vscode-server/Dockerfile +++ b/linux/advanced/vscode-server/Dockerfile @@ -105,6 +105,38 @@ RUN wget -nv --random-wait -c -O /tmp/7z.tar.xz ${SZ_DOWNLOAD_URL} && \ 7zz | head -4 && \ 7z | head -4 +################################################################## +# 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/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 + +################################################################## +# 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 && \ + docker-compose -v ################################################################## # installing java11 diff --git a/linux/advanced/vscode-server/Makefile b/linux/advanced/vscode-server/Makefile index ff219dc5e..bad6d73b5 100644 --- a/linux/advanced/vscode-server/Makefile +++ b/linux/advanced/vscode-server/Makefile @@ -3,7 +3,7 @@ all: app app: make build make deploy -# make clean + make clean build: docker-compose build --compress --parallel From 9327aaefb9475b2c2e18b19c6a84bbd894e0857c Mon Sep 17 00:00:00 2001 From: EpicMorg Date: Fri, 19 Nov 2021 20:22:24 +0300 Subject: [PATCH 139/144] vscode --- linux/advanced/vscode-server/run-docker.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100755 linux/advanced/vscode-server/run-docker.sh diff --git a/linux/advanced/vscode-server/run-docker.sh b/linux/advanced/vscode-server/run-docker.sh new file mode 100755 index 000000000..41b5e68e5 --- /dev/null +++ b/linux/advanced/vscode-server/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 From 6a7766e750f65be98e5a0d21710bc0a8b542574a Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Sat, 20 Nov 2021 00:13:05 +0300 Subject: [PATCH 140/144] vscode --- linux/advanced/vscode-server/Dockerfile | 28 ++++++++++++------- .../vscode-server/docker-compose-update | 27 ++++++++++++++++++ 2 files changed, 45 insertions(+), 10 deletions(-) create mode 100755 linux/advanced/vscode-server/docker-compose-update diff --git a/linux/advanced/vscode-server/Dockerfile b/linux/advanced/vscode-server/Dockerfile index 29e4c1a3c..e04655be8 100644 --- a/linux/advanced/vscode-server/Dockerfile +++ b/linux/advanced/vscode-server/Dockerfile @@ -6,6 +6,8 @@ FROM ghcr.io/linuxserver/code-server:focal LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive +USER root + ################################################################## # ARGuments ################################################################## @@ -106,7 +108,7 @@ RUN wget -nv --random-wait -c -O /tmp/7z.tar.xz ${SZ_DOWNLOAD_URL} && \ 7z | head -4 ################################################################## -# teamcity docker setup +# docker setup ################################################################## #Install packages @@ -128,15 +130,19 @@ RUN chmod +x /services/run-docker.sh && \ sync ################################################################## -# teamcity docker compose setup +# docker compose setup ################################################################## +COPY docker-compose-update /usr/local/bin/docker-compose-update +RUN chmod +x /usr/local/bin/docker-compose-update && \ + sync +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 +#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 ################################################################## # installing java11 @@ -350,17 +356,19 @@ RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licen ################################################################## # SDKMAN ################################################################## -RUN curl -s "https://get.sdkman.io" | bash +#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 /root/.sdkman/bin/sdkman-init.sh; sdk install gradle;" +RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install gradle;" ################################################################## # Kotlin ################################################################## -RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh; sdk install kotlin;" +RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install kotlin;" ################################################################## # cleaninig up diff --git a/linux/advanced/vscode-server/docker-compose-update b/linux/advanced/vscode-server/docker-compose-update new file mode 100755 index 000000000..f587ba863 --- /dev/null +++ b/linux/advanced/vscode-server/docker-compose-update @@ -0,0 +1,27 @@ +#!/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` + +echo "========================================================================================" +echo "Local Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}" +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 /usr/local/bin/docker-compose + +echo "========================================================================================" +echo "Setting up permissions..." +echo "========================================================================================" +chmod +x /usr/local/bin/docker-compose + + +echo "========================================================================================" +echo "Updated Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}" +echo "========================================================================================" From 80ffa68fde6865414bbee09dfaf9c3e8f23126b6 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Sat, 20 Nov 2021 00:42:23 +0300 Subject: [PATCH 141/144] vscode --- .../vscode-server/{ => devops}/Dockerfile | 109 ++---------------- .../vscode-server/{ => devops}/Makefile | 0 .../{ => devops}/docker-compose-update | 20 +++- .../{ => devops}/docker-compose.yml | 2 +- .../vscode-server/{ => devops}/run-docker.sh | 0 5 files changed, 27 insertions(+), 104 deletions(-) rename linux/advanced/vscode-server/{ => devops}/Dockerfile (81%) rename linux/advanced/vscode-server/{ => devops}/Makefile (100%) rename linux/advanced/vscode-server/{ => devops}/docker-compose-update (58%) rename linux/advanced/vscode-server/{ => devops}/docker-compose.yml (58%) rename linux/advanced/vscode-server/{ => devops}/run-docker.sh (100%) diff --git a/linux/advanced/vscode-server/Dockerfile b/linux/advanced/vscode-server/devops/Dockerfile similarity index 81% rename from linux/advanced/vscode-server/Dockerfile rename to linux/advanced/vscode-server/devops/Dockerfile index e04655be8..fbbffc594 100644 --- a/linux/advanced/vscode-server/Dockerfile +++ b/linux/advanced/vscode-server/devops/Dockerfile @@ -1,13 +1,11 @@ ################################################################################ # https://github.com/linuxserver/docker-code-server/pkgs/container/code-server ################################################################################ -FROM ghcr.io/linuxserver/code-server:focal +FROM epicmorg/vscode-server:latest LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive -USER root - ################################################################## # ARGuments ################################################################## @@ -16,97 +14,6 @@ ARG NINJA_ARCH=linux ARG NINJA_VERSION=latest ARG NINJA_RELEASE_URL=https://api.github.com/repos/ninja-build/ninja/releases/${NINJA_VERSION} -################################################################## -# 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 - ################################################################## # docker setup ################################################################## @@ -135,14 +42,18 @@ RUN chmod +x /services/run-docker.sh && \ 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 +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 + + ################################################################## # installing java11 diff --git a/linux/advanced/vscode-server/Makefile b/linux/advanced/vscode-server/devops/Makefile similarity index 100% rename from linux/advanced/vscode-server/Makefile rename to linux/advanced/vscode-server/devops/Makefile diff --git a/linux/advanced/vscode-server/docker-compose-update b/linux/advanced/vscode-server/devops/docker-compose-update similarity index 58% rename from linux/advanced/vscode-server/docker-compose-update rename to linux/advanced/vscode-server/devops/docker-compose-update index f587ba863..1a43d1c9b 100755 --- a/linux/advanced/vscode-server/docker-compose-update +++ b/linux/advanced/vscode-server/devops/docker-compose-update @@ -4,8 +4,20 @@ export DOCKER_COMPOSE_REMOTE_VERSION=`curl --silent https://api.github.com/repos export DOCKER_COMPOSE_LOCAL_VERSION=`docker-compose -v` -echo "========================================================================================" -echo "Local Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}" +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 "========================================================================================" @@ -14,12 +26,12 @@ 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 /usr/local/bin/docker-compose +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 /usr/local/bin/docker-compose +chmod +x $DOCKER_COMPOSE_BIN echo "========================================================================================" diff --git a/linux/advanced/vscode-server/docker-compose.yml b/linux/advanced/vscode-server/devops/docker-compose.yml similarity index 58% rename from linux/advanced/vscode-server/docker-compose.yml rename to linux/advanced/vscode-server/devops/docker-compose.yml index 6b70d72da..9e84a7ad1 100644 --- a/linux/advanced/vscode-server/docker-compose.yml +++ b/linux/advanced/vscode-server/devops/docker-compose.yml @@ -1,6 +1,6 @@ version: '3.9' services: app: - image: "epicmorg/vscode-server:latest" + image: "epicmorg/vscode-server:devops" build: context: . diff --git a/linux/advanced/vscode-server/run-docker.sh b/linux/advanced/vscode-server/devops/run-docker.sh similarity index 100% rename from linux/advanced/vscode-server/run-docker.sh rename to linux/advanced/vscode-server/devops/run-docker.sh From 707716daad0d512078b43f725f621fb80181e305 Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Sat, 20 Nov 2021 00:43:03 +0300 Subject: [PATCH 142/144] vscode --- .../advanced/vscode-server/latest/Dockerfile | 131 ++++++++++++++++++ linux/advanced/vscode-server/latest/Makefile | 19 +++ .../vscode-server/latest/docker-compose.yml | 6 + 3 files changed, 156 insertions(+) create mode 100644 linux/advanced/vscode-server/latest/Dockerfile create mode 100644 linux/advanced/vscode-server/latest/Makefile create mode 100644 linux/advanced/vscode-server/latest/docker-compose.yml 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: . From 196a4946f1fe294ed907d49cebf8456e32d11d50 Mon Sep 17 00:00:00 2001 From: EpicMorg Date: Sat, 20 Nov 2021 00:58:08 +0300 Subject: [PATCH 143/144] vscode --- linux/advanced/vscode-server/amxx/Dockerfile | 55 ++++++++ linux/advanced/vscode-server/amxx/Makefile | 19 +++ .../vscode-server/amxx/docker-compose.yml | 6 + .../advanced/vscode-server/android/Dockerfile | 74 ++++++++++ linux/advanced/vscode-server/android/Makefile | 19 +++ .../vscode-server/android/docker-compose.yml | 6 + .../advanced/vscode-server/devops/Dockerfile | 131 +++++++++--------- 7 files changed, 243 insertions(+), 67 deletions(-) create mode 100644 linux/advanced/vscode-server/amxx/Dockerfile create mode 100644 linux/advanced/vscode-server/amxx/Makefile create mode 100644 linux/advanced/vscode-server/amxx/docker-compose.yml create mode 100644 linux/advanced/vscode-server/android/Dockerfile create mode 100644 linux/advanced/vscode-server/android/Makefile create mode 100644 linux/advanced/vscode-server/android/docker-compose.yml 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/devops/Dockerfile b/linux/advanced/vscode-server/devops/Dockerfile index fbbffc594..752465649 100644 --- a/linux/advanced/vscode-server/devops/Dockerfile +++ b/linux/advanced/vscode-server/devops/Dockerfile @@ -14,59 +14,6 @@ ARG NINJA_ARCH=linux ARG NINJA_VERSION=latest ARG NINJA_RELEASE_URL=https://api.github.com/repos/ninja-build/ninja/releases/${NINJA_VERSION} -################################################################## -# 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 - - - -################################################################## -# 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 - ################################################################## # deps ################################################################## @@ -148,6 +95,58 @@ RUN curl -s ${NINJA_RELEASE_URL} | jq -r ".assets[] | select(.name | test(\"${NI 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 ################################################################## @@ -206,7 +205,6 @@ RUN dotnet help && \ pwsh-preview -v && \ pwsh -v - ################################################################## # AMXXModX setup ################################################################## @@ -234,19 +232,6 @@ RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1. chmod +x $AMXX_BIN_PATH/amxxpc && \ chmod +x $AMXX_BIN_PATH/compile.sh -################################################################## -# 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 ################################################################## @@ -281,6 +266,18 @@ RUN /bin/bash -c "source /config/.sdkman/bin/sdkman-init.sh; sdk install gradle; ################################################################## 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 ################################################################## From 5734fed8798fea787a7660ae5c6ab1c3f8e5883a Mon Sep 17 00:00:00 2001 From: Anatolii Zimovskii Date: Sat, 20 Nov 2021 01:07:46 +0300 Subject: [PATCH 144/144] vscode --- Makefile | 9 ++ bin/docker-compose-update | 39 ++++++ linux/advanced/vscode-server/cpp/Dockerfile | 125 ++++++++++++++++++ linux/advanced/vscode-server/cpp/Makefile | 19 +++ .../vscode-server/cpp/docker-compose.yml | 6 + .../advanced/vscode-server/docker/Dockerfile | 68 ++++++++++ linux/advanced/vscode-server/docker/Makefile | 19 +++ .../docker/docker-compose-update | 39 ++++++ .../vscode-server/docker/docker-compose.yml | 6 + .../vscode-server/docker/run-docker.sh | 7 + .../advanced/vscode-server/dotnet/Dockerfile | 86 ++++++++++++ linux/advanced/vscode-server/dotnet/Makefile | 19 +++ .../vscode-server/dotnet/docker-compose.yml | 6 + 13 files changed, 448 insertions(+) create mode 100755 bin/docker-compose-update create mode 100644 linux/advanced/vscode-server/cpp/Dockerfile create mode 100644 linux/advanced/vscode-server/cpp/Makefile create mode 100644 linux/advanced/vscode-server/cpp/docker-compose.yml create mode 100644 linux/advanced/vscode-server/docker/Dockerfile create mode 100644 linux/advanced/vscode-server/docker/Makefile create mode 100755 linux/advanced/vscode-server/docker/docker-compose-update create mode 100644 linux/advanced/vscode-server/docker/docker-compose.yml create mode 100755 linux/advanced/vscode-server/docker/run-docker.sh create mode 100644 linux/advanced/vscode-server/dotnet/Dockerfile create mode 100644 linux/advanced/vscode-server/dotnet/Makefile create mode 100644 linux/advanced/vscode-server/dotnet/docker-compose.yml diff --git a/Makefile b/Makefile index 0e4e27d82..45c727963 100644 --- a/Makefile +++ b/Makefile @@ -167,3 +167,12 @@ ecosystem-images: 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/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/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/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: .