atlasian new images

This commit is contained in:
STAM 2025-03-22 18:16:57 +03:00
parent 606d44d508
commit 40e3c3bbf2
Signed by: stam
GPG Key ID: E149C3760CFA3C7E
103 changed files with 4726 additions and 45 deletions

View File

@ -1,23 +1,23 @@
- name: "Generate images for Stash (Bitbucket) 1 (jdk7)" # - name: "Generate images for Stash (Bitbucket) 1 (jdk7)"
import_tasks: atlassian.bitbucket.1.jdk7.yml # import_tasks: atlassian.bitbucket.1.jdk7.yml
#
- name: "Generate images for Stash (Bitbucket) 2 (jdk7)" # - name: "Generate images for Stash (Bitbucket) 2 (jdk7)"
import_tasks: atlassian.bitbucket.2.jdk7.yml # import_tasks: atlassian.bitbucket.2.jdk7.yml
#
- name: "Generate images for Stash (Bitbucket) 3 (jdk8)" # - name: "Generate images for Stash (Bitbucket) 3 (jdk8)"
import_tasks: atlassian.bitbucket.3.jdk8.yml # import_tasks: atlassian.bitbucket.3.jdk8.yml
#
- name: "Generate images for Bitbucket 4 (jdk8)" # - name: "Generate images for Bitbucket 4 (jdk8)"
import_tasks: atlassian.bitbucket.4.jdk8.yml # import_tasks: atlassian.bitbucket.4.jdk8.yml
#
- name: "Generate images for Bitbucket 5 (jdk8)" # - name: "Generate images for Bitbucket 5 (jdk8)"
import_tasks: atlassian.bitbucket.5.jdk8.yml # import_tasks: atlassian.bitbucket.5.jdk8.yml
#
- name: "Generate images for Bitbucket 6 (jdk8 + jdk11)" # - name: "Generate images for Bitbucket 6 (jdk8 + jdk11)"
import_tasks: atlassian.bitbucket.6.jdk8-11.yml # import_tasks: atlassian.bitbucket.6.jdk8-11.yml
#
- name: "Generate images for Bitbucket 7 (jdk8 + jdk11)" # - name: "Generate images for Bitbucket 7 (jdk8 + jdk11)"
import_tasks: atlassian.bitbucket.7.jdk8-11.yml # import_tasks: atlassian.bitbucket.7.jdk8-11.yml
- name: "Generate images for Bitbucket 8 (jdk8 + jdk11)" - name: "Generate images for Bitbucket 8 (jdk8 + jdk11)"
import_tasks: atlassian.bitbucket.8.jdk8-11.yml import_tasks: atlassian.bitbucket.8.jdk8-11.yml

View File

@ -1,31 +1,31 @@
# broken envs, generating without it # broken envs, generating without it
#- name: "Generate images for Jira 4 (jdk6)" #- name: "Generate images for Jira 4 (jdk6)"
# import_tasks: atlassian.jira.4.jdk6.yml # import_tasks: atlassian.jira.4.jdk6.yml
#
- name: "Generate images for Jira 5.0-5.1 (jdk6)" # - name: "Generate images for Jira 5.0-5.1 (jdk6)"
import_tasks: atlassian.jira.5.jdk6.yml # import_tasks: atlassian.jira.5.jdk6.yml
#
- name: "Generate images for Jira 5.2 (jdk6, jdk7)" # - name: "Generate images for Jira 5.2 (jdk6, jdk7)"
import_tasks: atlassian.jira.5.jdk6-7.yml # import_tasks: atlassian.jira.5.jdk6-7.yml
#
- name: "Generate images for Jira 6.0-6.2 (jdk7)" # - name: "Generate images for Jira 6.0-6.2 (jdk7)"
import_tasks: atlassian.jira.6.jdk7.yml # import_tasks: atlassian.jira.6.jdk7.yml
#
- name: "Generate images for Jira 6.3-6.4 (jdk7, jdk8)" # - name: "Generate images for Jira 6.3-6.4 (jdk7, jdk8)"
import_tasks: atlassian.jira.6.jdk7-8.yml # import_tasks: atlassian.jira.6.jdk7-8.yml
#
- name: "Generate images for Jira 7 (jdk8) - old links" # - name: "Generate images for Jira 7 (jdk8) - old links"
import_tasks: atlassian.jira.7.jdk8p1.yml # import_tasks: atlassian.jira.7.jdk8p1.yml
#
- name: "Generate images for Jira 7 (jdk8)" # - name: "Generate images for Jira 7 (jdk8)"
import_tasks: atlassian.jira.7.jdk8p2.yml # import_tasks: atlassian.jira.7.jdk8p2.yml
#
- name: "Generate images for Jira 8.0-8.1 (jdk8)" # - name: "Generate images for Jira 8.0-8.1 (jdk8)"
import_tasks: atlassian.jira.8.jdk8.yml # import_tasks: atlassian.jira.8.jdk8.yml
#
- name: "Generate images for Jira 8.2-8.20 (jdk8, jdk11)" # - name: "Generate images for Jira 8.2-8.20 (jdk8, jdk11)"
import_tasks: atlassian.jira.8.jdk8-11.yml # import_tasks: atlassian.jira.8.jdk8-11.yml
#
- name: "Generate images for Jira 9.0-9.5 (jdk8, jdk11)" - name: "Generate images for Jira 9.0-9.5 (jdk8, jdk11)"
import_tasks: atlassian.jira.9.jdk8-11.yml import_tasks: atlassian.jira.9.jdk8-11.yml

View File

@ -0,0 +1,2 @@
RELEASE=8.19.13
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=8.19.13
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,10 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:8.19.13"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:8.19.13-jdk17"
build:
context: .

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=8.19.14
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=8.19.14
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,10 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:8.19.14"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:8.19.14-jdk17"
build:
context: .

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=8.19.15
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=8.19.15
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,10 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:8.19.15"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:8.19.15-jdk17"
build:
context: .

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=8.19.16
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=8.19.16
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,10 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:8.19.16"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:8.19.16-jdk17"
build:
context: .

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=9.4.1
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.4.1
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk21
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.4.1
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,15 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:9.4.1"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:9.4.1-jdk17"
build:
context: .
app-jdk21:
image: "epicmorg/bitbucket:9.4.1-jdk21"
build:
context: .
dockerfile: Dockerfile.jdk21

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=9.4.2
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.4.2
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk21
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.4.2
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,15 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:9.4.2"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:9.4.2-jdk17"
build:
context: .
app-jdk21:
image: "epicmorg/bitbucket:9.4.2-jdk21"
build:
context: .
dockerfile: Dockerfile.jdk21

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=9.4.3
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.4.3
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk21
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.4.3
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,15 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:9.4.3"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:9.4.3-jdk17"
build:
context: .
app-jdk21:
image: "epicmorg/bitbucket:9.4.3-jdk21"
build:
context: .
dockerfile: Dockerfile.jdk21

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=9.4.4
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.4.4
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk21
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.4.4
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,15 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:9.4.4"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:9.4.4-jdk17"
build:
context: .
app-jdk21:
image: "epicmorg/bitbucket:9.4.4-jdk21"
build:
context: .
dockerfile: Dockerfile.jdk21

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=9.5.1
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.5.1
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk21
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.5.1
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,15 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:9.5.1"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:9.5.1-jdk17"
build:
context: .
app-jdk21:
image: "epicmorg/bitbucket:9.5.1-jdk21"
build:
context: .
dockerfile: Dockerfile.jdk21

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=9.5.2
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.5.2
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk21
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.5.2
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,15 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:9.5.2"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:9.5.2-jdk17"
build:
context: .
app-jdk21:
image: "epicmorg/bitbucket:9.5.2-jdk21"
build:
context: .
dockerfile: Dockerfile.jdk21

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=9.6.0
DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.6.0
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,94 @@
FROM epicmorg/debian:bookworm-jdk21
LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.6.0
ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
ENV BITBUCKET_HOME /var/atlassian/application-data/bitbucket
ENV BITBUCKET_INSTALL_DIR /opt/atlassian/bitbucket
VOLUME ["${BITBUCKET_HOME}"]
WORKDIR $BITBUCKET_HOME
# Expose HTTP and SSH ports
EXPOSE 7990
EXPOSE 7999
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${BITBUCKET_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${BITBUCKET_INSTALL_DIR}
##################################################################
# Post-Installing Setup
##################################################################
RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
apt-get update && \
apt-get remove -y \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp && \
apt-get autoremove -y && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
git \
git-extras \
git-flow \
git-cvs \
git-doc \
git-email \
git-mediawiki \
git-crypt \
git-lfs \
git-ftp
##################################################################
# Git Check
##################################################################
RUN git-lfs install --skip-repo --system --force && \
echo "=============================================" && \
echo git $(git --version) && \
echo git-lfs $(git-lfs --version) && \
echo "============================================="
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,15 @@
#version: '3'
services:
app:
image: "epicmorg/bitbucket:9.6.0"
build:
context: .
app-jdk17:
image: "epicmorg/bitbucket:9.6.0-jdk17"
build:
context: .
app-jdk21:
image: "epicmorg/bitbucket:9.6.0-jdk21"
build:
context: .
dockerfile: Dockerfile.jdk21

View File

@ -0,0 +1,57 @@
#!/bin/bash
set -euo pipefail
# Set recommended umask of "u=,g=w,o=rwx" (0027)
umask 0027
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
#export PATH=$JAVA_HOME/bin:$PATH
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
: ${ELASTICSEARCH_ENABLED:=true}
: ${APPLICATION_MODE:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
ARGS="$@"
# Start Bitbucket without Elasticsearch
if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
ARGS="--no-search ${ARGS}"
fi
# Start Bitbucket as the correct user.
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
echo "Updating permissions for BITBUCKET_HOME"
mkdir -p "${BITBUCKET_HOME}/lib" &&
chmod -R 700 "${BITBUCKET_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
fi
# Now drop privileges
exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
else
exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
fi

View File

@ -0,0 +1,2 @@
RELEASE=10.3.3
DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=10.3.3
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,10 @@
#version: '3.9'
services:
app:
image: "epicmorg/jira:10.3.3"
build:
context: .
app-jdk17:
image: "epicmorg/jira:10.3.3-jdk17"
build:
context: .

View File

@ -0,0 +1,113 @@
#!/bin/bash
set -euo pipefail
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
# Setup Data Center configuration
if [ ! -f "/etc/container_id" ]; then
uuidgen > /etc/container_id
fi
CONTAINER_ID=$(cat /etc/container_id)
CONTAINER_SHORT_ID=${CONTAINER_ID::8}
: ${CLUSTERED:=false}
: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
: ${EHCACHE_PEER_DISCOVERY:=}
: ${EHCACHE_LISTENER_HOSTNAME:=}
: ${EHCACHE_LISTENER_PORT:=}
: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
: ${EHCACHE_MULTICAST_ADDRESS:=}
: ${EHCACHE_MULTICAST_PORT:=}
: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
: ${EHCACHE_MULTICAST_HOSTNAME:=}
# Cleanly set/unset values in cluster.properties
function set_cluster_property {
if [ -z $2 ]; then
if [ -f "${JIRA_HOME}/cluster.properties" ]; then
sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
fi
return
fi
if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
else
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
fi
}
if [ "${CLUSTERED}" == "true" ]; then
set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
fi
function set_home {
echo "Setting up JIRA_HOME.."
if [ -z "$JIRA_HOME" ]; then
echo "Variable JIRA_HOME is empty. Aborting"
exit 1
fi
echo "JIRA_HOME is: ${JIRA_HOME}"
echo "Patchig jira-application.properties"
sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
}
# Start Jira as the correct user
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
chmod -R 700 "${JIRA_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
fi
set_home
# Now drop privileges
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
else
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
fi
else
set_home
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
else
exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
fi
fi

View File

@ -0,0 +1,2 @@
RELEASE=10.3.4
DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=10.3.4
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,10 @@
#version: '3.9'
services:
app:
image: "epicmorg/jira:10.3.4"
build:
context: .
app-jdk17:
image: "epicmorg/jira:10.3.4-jdk17"
build:
context: .

View File

@ -0,0 +1,113 @@
#!/bin/bash
set -euo pipefail
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
# Setup Data Center configuration
if [ ! -f "/etc/container_id" ]; then
uuidgen > /etc/container_id
fi
CONTAINER_ID=$(cat /etc/container_id)
CONTAINER_SHORT_ID=${CONTAINER_ID::8}
: ${CLUSTERED:=false}
: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
: ${EHCACHE_PEER_DISCOVERY:=}
: ${EHCACHE_LISTENER_HOSTNAME:=}
: ${EHCACHE_LISTENER_PORT:=}
: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
: ${EHCACHE_MULTICAST_ADDRESS:=}
: ${EHCACHE_MULTICAST_PORT:=}
: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
: ${EHCACHE_MULTICAST_HOSTNAME:=}
# Cleanly set/unset values in cluster.properties
function set_cluster_property {
if [ -z $2 ]; then
if [ -f "${JIRA_HOME}/cluster.properties" ]; then
sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
fi
return
fi
if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
else
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
fi
}
if [ "${CLUSTERED}" == "true" ]; then
set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
fi
function set_home {
echo "Setting up JIRA_HOME.."
if [ -z "$JIRA_HOME" ]; then
echo "Variable JIRA_HOME is empty. Aborting"
exit 1
fi
echo "JIRA_HOME is: ${JIRA_HOME}"
echo "Patchig jira-application.properties"
sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
}
# Start Jira as the correct user
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
chmod -R 700 "${JIRA_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
fi
set_home
# Now drop privileges
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
else
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
fi
else
set_home
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
else
exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
fi
fi

View File

@ -0,0 +1,2 @@
RELEASE=10.4.0
DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=10.4.0
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,10 @@
#version: '3.9'
services:
app:
image: "epicmorg/jira:10.4.0"
build:
context: .
app-jdk17:
image: "epicmorg/jira:10.4.0-jdk17"
build:
context: .

View File

@ -0,0 +1,113 @@
#!/bin/bash
set -euo pipefail
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
# Setup Data Center configuration
if [ ! -f "/etc/container_id" ]; then
uuidgen > /etc/container_id
fi
CONTAINER_ID=$(cat /etc/container_id)
CONTAINER_SHORT_ID=${CONTAINER_ID::8}
: ${CLUSTERED:=false}
: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
: ${EHCACHE_PEER_DISCOVERY:=}
: ${EHCACHE_LISTENER_HOSTNAME:=}
: ${EHCACHE_LISTENER_PORT:=}
: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
: ${EHCACHE_MULTICAST_ADDRESS:=}
: ${EHCACHE_MULTICAST_PORT:=}
: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
: ${EHCACHE_MULTICAST_HOSTNAME:=}
# Cleanly set/unset values in cluster.properties
function set_cluster_property {
if [ -z $2 ]; then
if [ -f "${JIRA_HOME}/cluster.properties" ]; then
sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
fi
return
fi
if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
else
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
fi
}
if [ "${CLUSTERED}" == "true" ]; then
set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
fi
function set_home {
echo "Setting up JIRA_HOME.."
if [ -z "$JIRA_HOME" ]; then
echo "Variable JIRA_HOME is empty. Aborting"
exit 1
fi
echo "JIRA_HOME is: ${JIRA_HOME}"
echo "Patchig jira-application.properties"
sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
}
# Start Jira as the correct user
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
chmod -R 700 "${JIRA_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
fi
set_home
# Now drop privileges
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
else
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
fi
else
set_home
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
else
exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
fi
fi

View File

@ -0,0 +1,2 @@
RELEASE=10.4.1
DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=10.4.1
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,10 @@
#version: '3.9'
services:
app:
image: "epicmorg/jira:10.4.1"
build:
context: .
app-jdk17:
image: "epicmorg/jira:10.4.1-jdk17"
build:
context: .

View File

@ -0,0 +1,113 @@
#!/bin/bash
set -euo pipefail
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
# Setup Data Center configuration
if [ ! -f "/etc/container_id" ]; then
uuidgen > /etc/container_id
fi
CONTAINER_ID=$(cat /etc/container_id)
CONTAINER_SHORT_ID=${CONTAINER_ID::8}
: ${CLUSTERED:=false}
: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
: ${EHCACHE_PEER_DISCOVERY:=}
: ${EHCACHE_LISTENER_HOSTNAME:=}
: ${EHCACHE_LISTENER_PORT:=}
: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
: ${EHCACHE_MULTICAST_ADDRESS:=}
: ${EHCACHE_MULTICAST_PORT:=}
: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
: ${EHCACHE_MULTICAST_HOSTNAME:=}
# Cleanly set/unset values in cluster.properties
function set_cluster_property {
if [ -z $2 ]; then
if [ -f "${JIRA_HOME}/cluster.properties" ]; then
sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
fi
return
fi
if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
else
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
fi
}
if [ "${CLUSTERED}" == "true" ]; then
set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
fi
function set_home {
echo "Setting up JIRA_HOME.."
if [ -z "$JIRA_HOME" ]; then
echo "Variable JIRA_HOME is empty. Aborting"
exit 1
fi
echo "JIRA_HOME is: ${JIRA_HOME}"
echo "Patchig jira-application.properties"
sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
}
# Start Jira as the correct user
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
chmod -R 700 "${JIRA_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
fi
set_home
# Now drop privileges
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
else
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
fi
else
set_home
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
else
exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
fi
fi

View File

@ -0,0 +1,2 @@
RELEASE=10.5.0
DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=10.5.0
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,10 @@
#version: '3.9'
services:
app:
image: "epicmorg/jira:10.5.0"
build:
context: .
app-jdk17:
image: "epicmorg/jira:10.5.0-jdk17"
build:
context: .

View File

@ -0,0 +1,113 @@
#!/bin/bash
set -euo pipefail
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
# Setup Data Center configuration
if [ ! -f "/etc/container_id" ]; then
uuidgen > /etc/container_id
fi
CONTAINER_ID=$(cat /etc/container_id)
CONTAINER_SHORT_ID=${CONTAINER_ID::8}
: ${CLUSTERED:=false}
: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
: ${EHCACHE_PEER_DISCOVERY:=}
: ${EHCACHE_LISTENER_HOSTNAME:=}
: ${EHCACHE_LISTENER_PORT:=}
: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
: ${EHCACHE_MULTICAST_ADDRESS:=}
: ${EHCACHE_MULTICAST_PORT:=}
: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
: ${EHCACHE_MULTICAST_HOSTNAME:=}
# Cleanly set/unset values in cluster.properties
function set_cluster_property {
if [ -z $2 ]; then
if [ -f "${JIRA_HOME}/cluster.properties" ]; then
sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
fi
return
fi
if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
else
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
fi
}
if [ "${CLUSTERED}" == "true" ]; then
set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
fi
function set_home {
echo "Setting up JIRA_HOME.."
if [ -z "$JIRA_HOME" ]; then
echo "Variable JIRA_HOME is empty. Aborting"
exit 1
fi
echo "JIRA_HOME is: ${JIRA_HOME}"
echo "Patchig jira-application.properties"
sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
}
# Start Jira as the correct user
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
chmod -R 700 "${JIRA_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
fi
set_home
# Now drop privileges
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
else
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
fi
else
set_home
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
else
exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
fi
fi

View File

@ -0,0 +1,2 @@
RELEASE=9.12.18
DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.12.18
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.12.18
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.12.18
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,38 @@
PIP_BREAK_SYSTEM_PACKAGES=1
all: app
app:
make build
make deploy
make clean
build:
buildah-wrapper --build
deploy:
buildah-wrapper --deploy
build-kaniko:
kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
deploy-kaniko:
kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
build-compose:
docker-compose build --compress --parallel --progress plain
deploy-compose:
docker-compose push
clean:
docker container prune -f
docker image prune -f
docker network prune -f
docker volume prune -f
docker system prune -af
buildah rm -a
buildah rmi -a

View File

@ -0,0 +1,20 @@
#version: '3.9'
services:
app:
image: "epicmorg/jira:9.12.18"
build:
context: .
app-jdk8:
image: "epicmorg/jira:9.12.18-jdk8"
build:
context: .
app-jdk11:
image: "epicmorg/jira:9.12.18-jdk11"
build:
context: .
dockerfile: Dockerfile.jdk11
app-jdk17:
image: "epicmorg/jira:9.12.18-jdk17"
build:
context: .
dockerfile: Dockerfile.jdk17

View File

@ -0,0 +1,113 @@
#!/bin/bash
set -euo pipefail
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export JRE_HOME="$JAVA_HOME/jre"
export JAVA_BINARY="$JRE_HOME/bin/java"
export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
# Setup Catalina Opts
: ${CATALINA_CONNECTOR_PROXYNAME:=}
: ${CATALINA_CONNECTOR_PROXYPORT:=}
: ${CATALINA_CONNECTOR_SCHEME:=http}
: ${CATALINA_CONNECTOR_SECURE:=false}
: ${CATALINA_OPTS:=}
: ${JAVA_OPTS:=}
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
# Setup Data Center configuration
if [ ! -f "/etc/container_id" ]; then
uuidgen > /etc/container_id
fi
CONTAINER_ID=$(cat /etc/container_id)
CONTAINER_SHORT_ID=${CONTAINER_ID::8}
: ${CLUSTERED:=false}
: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
: ${EHCACHE_PEER_DISCOVERY:=}
: ${EHCACHE_LISTENER_HOSTNAME:=}
: ${EHCACHE_LISTENER_PORT:=}
: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
: ${EHCACHE_MULTICAST_ADDRESS:=}
: ${EHCACHE_MULTICAST_PORT:=}
: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
: ${EHCACHE_MULTICAST_HOSTNAME:=}
# Cleanly set/unset values in cluster.properties
function set_cluster_property {
if [ -z $2 ]; then
if [ -f "${JIRA_HOME}/cluster.properties" ]; then
sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
fi
return
fi
if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
else
echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
fi
}
if [ "${CLUSTERED}" == "true" ]; then
set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
fi
function set_home {
echo "Setting up JIRA_HOME.."
if [ -z "$JIRA_HOME" ]; then
echo "Variable JIRA_HOME is empty. Aborting"
exit 1
fi
echo "JIRA_HOME is: ${JIRA_HOME}"
echo "Patchig jira-application.properties"
sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
}
# Start Jira as the correct user
if [ "${UID}" -eq 0 ]; then
echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
chmod -R 700 "${JIRA_HOME}" &&
chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
fi
set_home
# Now drop privileges
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
else
exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
fi
else
set_home
if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
else
exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
fi
fi

View File

@ -0,0 +1,2 @@
RELEASE=9.12.19
DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk8
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.12.19
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk11
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.12.19
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

View File

@ -0,0 +1,56 @@
FROM epicmorg/debian:bookworm-jdk17
LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
ARG RELEASE=9.12.19
ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
##################################################################
# Setup
##################################################################
ENV RUN_USER daemon
ENV RUN_GROUP daemon
# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
ENV JIRA_HOME /var/atlassian/application-data/jira
ENV JIRA_INSTALL_DIR /opt/atlassian/jira
VOLUME ["${JIRA_HOME}"]
WORKDIR $JIRA_HOME
# Expose HTTP port
EXPOSE 8080
##################################################################
# Installing
##################################################################
ADD ${DOWNLOAD_URL} /tmp
RUN mkdir -p ${JIRA_INSTALL_DIR} && \
tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/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
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /var/cache/apt/archives/*.deb && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD ["/entrypoint.sh", "-fg"]
ENTRYPOINT ["/usr/bin/tini", "--"]
RUN updatedb

Some files were not shown because too many files have changed in this diff Show More